关于 MCP Server: Terraform AWS Provider Docs
这款基于 Deno 和 TypeScript 的 MCP 服务提供 Terraform AWS Provider 文档、GitHub 问题与发布信息,以及 AWS 资源示例,面向编写 Terraform 基础设施代码的开发者。
主要功能
- 01列出资源与数据源文档
- 02按名称或模糊搜索获取文档
- 03查询未关闭问题及其详情
- 04列出发布版本并获取详情
- 05提供 AWS 资源示例
适用场景
- 01编写 Terraform 模块时查阅 AWS 资源
- 02确认 Provider 行为是否对应已知问题
- 03查看版本变更及相关问题
MCP 相关
向 MCP 客户端提供工具和资源,用于查询 Terraform AWS Provider 文档、GitHub 问题与发布信息及 AWS 示例。使用工具需要通过环境变量提供 GitHub token。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务:Terraform AWS Provider 文档
这是一个使用 Deno 和 TypeScript 构建的 Model Context Protocol (MCP) 服务,旨在提供与 Terraform AWS Provider 相关的上下文信息。
目录
概述
此服务作为 MCP 服务,提供工具和资源,让 AI Agent 或其他 MCP 客户端能够查询有关 Terraform AWS Provider 的信息,例如:
- ✅ 资源文档。
- ✅ Provider 配置,包括临时资源、指南和函数。
- ✅ GitHub Issues(已开启、已关闭和全部)
- ✅ AWS 资源示例
什么是 Model Context Protocol (MCP),它如何运作?
Model Context Protocol (MCP) 是一种开放协议,可实现大模型应用与外部数据源和工具之间的无缝集成。无论你是在构建 AI 驱动的 IDE、增强聊天界面,还是创建自定义 AI 工作流,MCP 都提供了一种标准化方式,将大模型与它们所需的上下文连接起来。
为什么?
编写 IaC 或设计 terraform 模块时,通常需要深入了解实际 AWS 资源、功能和能力,以便设计出适用于生产环境、接口稳定、可组合且可复用的模块。
此 MCP 服务旨在通过 Terraform AWS Provider 注册表网站上的最新文档、问题和示例提供这些信息。始终保持最新,始终源自官方来源。
工具
重要
所有工具都需要将有效的 GitHub 令牌设置为环境变量:
GITHUB_TOKEN、GH_TOKEN或GITHUB_PERSONAL_ACCESS_TOKEN。
目前提供以下工具(后续还会添加,欢迎提交 issue 或 PR):
| 工具名称 | 用途 | 输入 | 输出 | 使用场景 |
|---|---|---|---|---|
list-resources | 列出所有 AWS 资源文档文件及其元数据 | 无 | 资源对象数组,包含 id、subcategory、page_title、description、resource、resource_description、source、file_path | 发现 Terraform AWS Provider 支持的所有 AWS 资源,获取文件名/路径以供后续查询,并构建仪表板、摘要或分析报告。 |
get-resource-doc | 按名称或模糊搜索获取单个 AWS 资源文档文件 | aws_resource(字符串,可选):资源名称或描述file_name(字符串,可选):确切文件名(优先使用) | 请求的资源文档,经解析和格式化,包含所有元数据字段和完整的 Markdown 正文 | 获取特定 AWS 资源的详细文档,解析含糊或自然语言查询,并向大模型或客户端提供结构化资源信息。 |
list-datasources | 列出所有 AWS 数据源文档文件及其元数据 | 无 | 数据源对象数组,包含 id、subcategory、page_title、description、datasource、datasource_description、source、file_path | 发现 Terraform AWS Provider 支持的所有 AWS 数据源,获取文件名/路径以供后续查询,并构建仪表板、摘要或分析报告。 |
get-datasource-doc | 按名称或模糊搜索获取单个 AWS 数据源文档文件 | aws_datasource(字符串,可选):数据源名称或描述file_name(字符串,可选):确切文件名(优先使用) | 请求的数据源文档,经解析和格式化,包含所有元数据字段和完整的 Markdown 正文 | 获取特定 AWS 数据源的详细文档,解析含糊或自然语言查询,并向大模型或客户端提供结构化数据源信息。 |
get-open-issues | 从 Terraform AWS Provider GitHub 仓库获取未关闭的问题 | all(布尔值,可选):获取全部问题或前 30 个问题 | 问题对象数组,包含 ID、标题、描述、来源、状态、用户、标签、创建/更新时间戳和评论 | 分析、分类处理或报告当前未关闭的问题。构建仪表板,将问题与文档关联,并了解 Terraform 行为是否符合预期或与已知问题相关。 |
get-issue | 获取特定 GitHub 问题的详细信息 | issueNumber(数字,必填):确切的 GitHub 问题编号 | 包含完整元数据的问题对象,包括正文、时间戳、标签和评论 | 详细调查特定问题;通常在使用 get-open-issues 后调用,以获取某个关注问题的完整信息。 |
list-all-releases | 从 Terraform AWS Provider GitHub 仓库获取所有版本发布信息 | 无 | 版本发布对象数组,包含 ID、标签、名称、作者、发布日期、URL、资源数量和摘要正文 | 列出所有可用版本,构建仪表板、变更日志或分析报告,并将 Provider 版本与文档、问题或升级指南关联起来。 |
get-release-by-tag | 按标签获取特定版本发布的详细信息 | tag(字符串,必填):版本发布标签(例如,'v5.96.0')include_issues(布尔值,可选):同时获取引用的问题 | 版本发布对象,包含完整元数据;如果 include_issues 为 true,还包含发布说明中所有引用问题的详细信息 | 深入调查特定版本,包括其中引用的问题。可在使用 list-all-releases 后调用,也可在已知标签时直接调用。 |
get-latest-release | 获取最新版本发布的详细信息 | include_issues(布尔值,可选):同时获取引用的问题 | 最新版本发布对象,包含完整元数据;如果 include_issues 为 true,还包含发布说明中所有引用问题的详细信息 | 快速查看最新版本,了解新功能或错误修复,并可选择查看引用的问题。 |
开始使用
安装并在 Claude Desktop 中使用
要在 Claude Desktop 中使用此基于 Deno 的 MCP 服务,请将以下内容添加到
claude_desktop_config.json:
使用 Deno
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": [
"run",
"-A",
"main.ts"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
或者,推荐直接通过 JSR 使用 deno
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": [
"run",
"-A",
"jsr:@excoriate/[email protected]"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
使用 Docker
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "docker",
"args": [
"run",
"-e",
"GITHUB_TOKEN=<YOUR_TOKEN>",
"mcp-terraform-aws-provider-docs"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
在 IDE/编辑器中安装
在 Cursor 中安装
前往:Settings -> Cursor Settings -> MCP -> Add new global MCP server
建议将以下配置粘贴到 Cursor 的 ~/.cursor/mcp.json 文件中。更多信息请参阅
Cursor MCP 文档。
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
在 Windsurf 中安装
将以下内容添加到 Windsurf MCP 配置文件中。更多信息请参阅 Windsurf MCP 文档。
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
在 VSCode 中安装
将以下内容添加到 VSCode MCP 配置文件中。更多信息请参阅 VSCode MCP 文档。
{
"servers": {
"Context7": {
"type": "stdio",
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
开发与贡献
有关调试、测试和为此项目做贡献的更多详情,请参阅 DEVELOPER_GUIDE 和 CONTRIBUTING。
直接从 JSR 运行
你可以直接通过 JSR 使用 MCP 服务(Javascript Registry ❤️)
# export your github token
export GITHUB_TOKEN=ghp_xxx...
# run it
deno run -A jsr:@excoriate/mcp-terraform-aws-provider-docs@latest
调试与故障排除
如果你想调试,请使用内置调试器 (inspector)。我们提供了一个 justfile 配方来帮助你。
# start the mcp server, and the inspector
just inspect
使用 Docker
构建 Docker 镜像
docker build -t mcp-terraform-aws-provider-docs .
在 Docker 中运行 MCP 服务
docker run -it --rm \
-e GITHUB_TOKEN=ghp_xxx... \
mcp-terraform-aws-provider-docs
提示
将
ghp_xxx...替换为具有适当权限的 GitHub 个人访问令牌。你也可以使用
GH_TOKEN或GITHUB_PERSONAL_ACCESS_TOKEN作为 环境变量名。如果要使用本地
.env文件,可以通过--env-file .env传入。
路线图
- 添加用于获取提供商配置的工具。
- 集成专用后端,用于建立索引并提供高级搜索/代码助手文档,避免触发 GitHub API 速率限制。
贡献
有关详细的贡献指南,包括设置、代码风格、PR 流程和代码库结构参考,请参阅 CONTRIBUTING.md。
安全
有关项目安全策略,包括如何报告漏洞和负责任披露指南,请参阅 SECURITY.md。
许可证
本项目采用 MIT License 许可。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。