关于 infraport
infraport 通过命令行和 stdio MCP 提供 Terraform Registry 记录及 HCP Terraform 工作区的访问方式。它适合搜索模块、Provider 或策略并查看工作区;Registry 调用无需凭据,工作区调用使用 `TFE_TOKEN`。
主要功能
- 01搜索 Registry 模块、Provider 和策略
- 02读取 Registry 记录及最新版本
- 03列出并查看 HCP Terraform 工作区
- 04提供命令行和 stdio MCP 服务
适用场景
- 01按查询查找 Terraform 模块
- 02查看 Provider 或策略记录
- 03检查组织中的工作区
MCP 相关
stdio MCP 服务提供八个 Terraform Registry 工具和两个工作区工具。工作区工具需要 `TFE_TOKEN`;Registry 工具无需凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
10收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| query | string | 是 | 用于在 Terraform Registry 中查找模块的搜索文本。 |
| offset | number | 否 | 模块搜索结果的可选分页偏移量。 |
| provider | string | 否 | 可选的提供程序名称,用于将模块搜索结果筛选为单个提供程序。 |
详细介绍
infraport
infraport 是一个用于读取 Terraform 两个公开接口的小型工具。 Terraform Registry 用于发布模块、提供程序和 Sentinel 策略集;infraport 可搜索 Registry,并读取单个模块、提供程序或策略集的 记录,包括模块或提供程序最新发布的版本。HCP Terraform 用于管理工作区; infraport 可列出组织中的工作区,并按名称读取一个工作区。一个二进制文件同时提供 命令行界面和 stdio MCP 服务。
这两个接口有一个重要区别:Registry 无需密钥。Registry 命令和工具无需任何凭据
即可使用,且绝不会向其发送 Authorization 标头。只有两个
工作区工具需要令牌——通过 TFE_TOKEN 环境变量提供的 HCP Terraform API 令牌,并以
Authorization: Bearer 的形式发送至 app.terraform.io。如果缺少 TFE_TOKEN,工作区
调用会在发出任何请求之前失败,并提示该变量的名称;Registry 调用不受影响。
安装
npx @reneturcios/infraport search-modules vpc
或者运行容器镜像:
docker run -i -e TFE_TOKEN ghcr.io/cloudcorprecords/infraport
容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。
CLI
infraport search-modules vpc
infraport module terraform-aws-modules vpc aws
infraport module-version terraform-aws-modules vpc aws
infraport search-providers aws
infraport provider hashicorp aws
infraport provider-version hashicorp aws
infraport search-policies tags
infraport policy hashicorp enforce-tags
export TFE_TOKEN=<your HCP Terraform token>
infraport workspaces my-org
infraport workspace my-org prod
infraport --version
每条命令都会输出上游 JSON 载荷。两个
*-version 命令会输出一个小型对象,其中包含提取出的 version
以及其来源的完整 Registry 载荷。退出代码:
成功时为 0;调用失败时为 1(包括工作区命令缺少
TFE_TOKEN 或 API 错误);用法错误时为 2。
MCP 服务
一个二进制文件同时提供这两种用途。mcp 子命令会启动一个 stdio MCP
服务:
npx -y @reneturcios/infraport mcp
MCP 客户端配置:
{
"mcpServers": {
"infraport": {
"command": "npx",
"args": ["-y", "@reneturcios/infraport", "mcp"],
"env": { "TFE_TOKEN": "..." }
}
}
}
只有两个工作区工具需要 env 条目;八个 Registry 工具无需该条目即可使用。
工具
| 工具 | 输入 | 返回内容 |
|---|---|---|
search_modules | query(必填)、provider、offset(可选) | 与查询匹配的 Registry 模块。 |
get_module_details | namespace、name、provider(必填)、version(可选) | 模块记录。 |
get_latest_module_version | namespace、name、provider(必填) | 从模块记录中提取的最新版本,以及该记录。 |
search_providers | query(必填)、offset(可选) | 与查询匹配的 Registry 提供程序。 |
get_provider_details | namespace、type(必填)、version(可选) | 提供程序记录。 |
get_latest_provider_version | namespace、type(必填) | 从提供程序记录中提取的最新版本,以及该记录。 |
search_policies | query(必填)、offset(可选) | 与查询匹配的 Registry 策略集。 |
get_policy_details | namespace、name(必填) | 策略集记录。 |
list_workspaces | organization(必填) | 组织中的工作区。需要 TFE_TOKEN。 |
get_workspace | organization、workspace(必填) | 一个工作区。需要 TFE_TOKEN。 |
Registry 调用使用 https://registry.terraform.io/v1,且不发送
授权信息。工作区调用使用 https://app.terraform.io/api/v2,
并携带 Bearer 令牌及 application/vnd.api+json 内容类型。
此版本涵盖一组核心功能:上述八个 Registry 工具, 以及工作区列表和读取功能。它不会管理运行任务、创建 或修改工作区、编辑变量,也不会发布模块、提供程序 或策略。
开发
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
许可证
MIT——参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。