{"id":36983991,"url":"https://github.com/hyperpolymath/poly-iac-mcp","last_synced_at":"2026-01-13T23:00:10.535Z","repository":{"id":328823727,"uuid":"1116010015","full_name":"hyperpolymath/poly-iac-mcp","owner":"hyperpolymath","description":"Unified MCP server for Infrastructure as Code. Tools for OpenTofu, Terraform, and Pulumi.","archived":false,"fork":false,"pushed_at":"2026-01-12T06:04:29.000Z","size":261,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T22:59:47.970Z","etag":null,"topics":["automation","deno","developer-tools","infrastructure-as-code","integration","mcp","mcp-server","model-context-protocol","my-coolest-projects","opentofu","orchestration","poly-mcp","pulumi","systems","terraform"],"latest_commit_sha":null,"homepage":null,"language":"ReScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hyperpolymath.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.adoc","authors":null,"dei":null,"publiccode":null,"codemeta":"codemeta.json","zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"hyperpolymath","ko_fi":"hyperpolymath","liberapay":"hyperpolymath"}},"created_at":"2025-12-14T02:18:55.000Z","updated_at":"2026-01-12T06:04:33.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hyperpolymath/poly-iac-mcp","commit_stats":null,"previous_names":["hyperpolymath/poly-iac-mcp"],"tags_count":1,"template":false,"template_full_name":"hyperpolymath/rsr-template-repo","purl":"pkg:github/hyperpolymath/poly-iac-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperpolymath%2Fpoly-iac-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperpolymath%2Fpoly-iac-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperpolymath%2Fpoly-iac-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperpolymath%2Fpoly-iac-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperpolymath","download_url":"https://codeload.github.com/hyperpolymath/poly-iac-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperpolymath%2Fpoly-iac-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28405148,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automation","deno","developer-tools","infrastructure-as-code","integration","mcp","mcp-server","model-context-protocol","my-coolest-projects","opentofu","orchestration","poly-mcp","pulumi","systems","terraform"],"created_at":"2026-01-13T23:00:09.903Z","updated_at":"2026-01-13T23:00:10.517Z","avatar_url":"https://github.com/hyperpolymath.png","language":"ReScript","funding_links":["https://github.com/sponsors/hyperpolymath","https://ko-fi.com/hyperpolymath","https://liberapay.com/hyperpolymath"],"categories":[],"sub_categories":[],"readme":"= poly-iac-mcp\n:toc:\n:toc-placement!:\n\nimage:https://img.shields.io/badge/RSR-compliant-gold[RSR Compliant,link=https://github.com/hyperpolymath/rhodium-standard-repositories]\nimage:https://img.shields.io/badge/MCP-server-blue[MCP Server,link=https://github.com/modelcontextprotocol]\nimage:[License,link=\"https://github.com/hyperpolymath/palimpsest-license\"]\n\n// SPDX-License-Identifier: PMPL-1.0\n// SPDX-FileCopyrightText: 2025 hyperpolymath\n\nUnified MCP server for Infrastructure as Code management. Provides Model Context Protocol tools for managing infrastructure through Terraform/OpenTofu and Pulumi.\n\ntoc::[]\n\n== Overview\n\npoly-iac-mcp exposes Infrastructure as Code capabilities through the Model Context Protocol (MCP), enabling AI assistants and other MCP clients to plan, apply, and manage infrastructure across multiple IaC platforms. FOSS-first: OpenTofu is preferred over Terraform when available.\n\n== Adapters\n\n=== Terraform/OpenTofu (9 tools)\nDeclarative infrastructure management (prefers OpenTofu):\n\n* `terraform_init` - Initialize a working directory\n* `terraform_plan` - Generate and show an execution plan\n* `terraform_apply` - Apply infrastructure changes\n* `terraform_destroy` - Destroy infrastructure\n* `terraform_output` - Show output values from state\n* `terraform_state_list` - List resources in the state\n* `terraform_validate` - Validate the configuration files\n* `terraform_fmt` - Format configuration files\n* `terraform_version` - Show Terraform/OpenTofu version\n\n=== Pulumi (11 tools)\nInfrastructure as Code using real programming languages:\n\n* `pulumi_preview` - Preview changes to infrastructure\n* `pulumi_up` - Deploy infrastructure changes\n* `pulumi_destroy` - Destroy infrastructure\n* `pulumi_stack_list` - List all stacks\n* `pulumi_stack_select` - Select a stack\n* `pulumi_stack_init` - Create a new stack\n* `pulumi_stack_output` - Get stack outputs\n* `pulumi_refresh` - Refresh state from cloud\n* `pulumi_config_set` - Set a configuration value\n* `pulumi_config_get` - Get a configuration value\n* `pulumi_version` - Show Pulumi version\n\n== Requirements\n\n* https://deno.land/[Deno] runtime\n* https://opentofu.org/[OpenTofu] or https://www.terraform.io/[Terraform] CLI (for Terraform tools)\n* https://www.pulumi.com/[Pulumi] CLI (for Pulumi tools)\n\n== FOSS-First Philosophy\n\nThis MCP server prefers open source alternatives:\n\n* **OpenTofu** is preferred over Terraform when both are available\n* Binary detection automatically selects the FOSS option first\n\n== Installation\n\n[source,bash]\n----\ngit clone https://github.com/hyperpolymath/poly-iac-mcp\ncd poly-iac-mcp\ndeno cache main.js\n----\n\nOr with Guix:\n\n[source,bash]\n----\nguix shell -D -f guix.scm\n----\n\n== Usage\n\nRun as MCP server:\n\n[source,bash]\n----\ndeno run --allow-run --allow-read --allow-env main.js\n----\n\nOr use the systemd service:\n\n[source,bash]\n----\nsystemctl --user enable poly-iac-mcp\nsystemctl --user start poly-iac-mcp\n----\n\n== Security Considerations\n\n* Never store cloud credentials in configuration files\n* Use environment variables or secret managers for sensitive values\n* Review plans carefully before applying changes\n* Enable state encryption for sensitive infrastructure\n* Use `--auto-approve` with caution\n\n== Use Cases\n\n* Plan and apply infrastructure changes\n* Manage multiple environments (dev, staging, prod) via stacks\n* Query infrastructure state and outputs\n* Validate and format configuration files\n* Compare planned changes before deployment\n\n== License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperpolymath%2Fpoly-iac-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperpolymath%2Fpoly-iac-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperpolymath%2Fpoly-iac-mcp/lists"}