mcpField
I
infraport

infraport

Local
github.com/CloudCorpRecordsCloud & Infra0Updated 2w ago

About infraport

infraport provides CLI and stdio MCP access to Terraform Registry records and HCP Terraform workspaces. It serves users who need to search modules, providers, or policies and inspect workspaces; Registry calls need no credentials, while workspace calls use `TFE_TOKEN`.

Key features

  1. 01Search Registry modules, providers, and policies
  2. 02Read Registry records and latest versions
  3. 03List and inspect HCP Terraform workspaces
  4. 04Provide CLI and stdio MCP server

Use cases

  1. 01Find Terraform modules for a query
  2. 02Check a provider or policy record
  3. 03Inspect an organization's workspaces

MCP support

The stdio MCP server exposes eight Terraform Registry tools and two workspace tools. Workspace tools require `TFE_TOKEN`; Registry tools do not require credentials.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-infraport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/infraport"
]
}
}
}
Run commandnpx -y @reneturcios/infraport

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/infraport0.1.0
ocighcr.io/cloudcorprecords/infraport:0.1.0

Tools

10

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
querystringYesSearch text used to find modules in the Terraform Registry.
offsetnumberNoOptional pagination offset for the module search results.
providerstringNoOptional provider name to filter the module search results to one provider.

Details

From the project README

infraport

infraport is a small reader for Terraform's two public surfaces. The Terraform Registry is where modules, providers, and Sentinel policy sets are published; infraport searches it and reads the record for a single module, provider, or policy set, including the latest published version of a module or provider. HCP Terraform is where workspaces live; infraport lists the workspaces in an organization and reads one workspace by name. One binary serves a command-line interface and a stdio MCP server.

The two surfaces differ in one important way: the Registry is keyless. Registry commands and tools work with no credentials at all, and no Authorization header is ever sent to it. Only the two workspace tools need a token — an HCP Terraform API token in the TFE_TOKEN environment variable, sent as Authorization: Bearer to app.terraform.io. When TFE_TOKEN is missing, a workspace call fails with an error that names the variable, before any request is made; registry calls are unaffected.

Install

npx @reneturcios/infraport search-modules vpc

Or run the container image:

docker run -i -e TFE_TOKEN ghcr.io/cloudcorprecords/infraport

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

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

Each command prints the upstream JSON payload. The two *-version commands print a small object holding the extracted version plus the full registry payload it came from. Exit codes: 0 on success, 1 when a call fails (including a missing TFE_TOKEN for workspace commands, or an API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/infraport mcp

MCP client configuration:

{
  "mcpServers": {
    "infraport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/infraport", "mcp"],
      "env": { "TFE_TOKEN": "..." }
    }
  }
}

The env entry is only needed for the two workspace tools; the eight registry tools work without it.

Tools
ToolInputWhat it returns
search_modulesquery (required), provider, offset (optional)Registry modules matching the query.
get_module_detailsnamespace, name, provider (required), version (optional)The module record.
get_latest_module_versionnamespace, name, provider (required)The latest version extracted from the module record, plus that record.
search_providersquery (required), offset (optional)Registry providers matching the query.
get_provider_detailsnamespace, type (required), version (optional)The provider record.
get_latest_provider_versionnamespace, type (required)The latest version extracted from the provider record, plus that record.
search_policiesquery (required), offset (optional)Registry policy sets matching the query.
get_policy_detailsnamespace, name (required)The policy set record.
list_workspacesorganization (required)Workspaces in the organization. Requires TFE_TOKEN.
get_workspaceorganization, workspace (required)One workspace. Requires TFE_TOKEN.

Registry calls use https://registry.terraform.io/v1 and send no authorization. Workspace calls use https://app.terraform.io/api/v2 with a Bearer token and the application/vnd.api+json content type.

This build covers a core subset: the eight registry tools above plus workspace listing and reading. It does not manage runs, create or change workspaces, edit variables, or publish modules, providers, or policies.

Development

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

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.