Skip to content

terraform-ibm-modules/tim-mcp

Terraform IBM Modules MCP

pre-commit Renovate enabled semantic-release Experimental

A Model Context Protocol (MCP) server that provides structured access to the Terraform IBM Modules (TIM) ecosystem. TIM is a curated collection of IBM Cloud Terraform modules designed to follow best practices.

Table of Contents

Overview

The TIM-MCP server acts as a bridge between AI models and the Terraform IBM Modules ecosystem, enabling intelligent discovery and utilization of IBM Cloud infrastructure resources.

Key Features

  • Module Search: Find relevant modules in the Terraform Registry with quality-based ranking
  • Module Details: Get structured information about inputs, outputs, and dependencies
  • Repository Exploration: Navigate examples, submodules, and implementation patterns
  • Content Retrieval: Access documentation, example code, and other repository files
  • White Paper Resource: Access the IBM Cloud Terraform Best Practices white paper
  • AI-Assisted Workflows: Tools designed to support infrastructure code generation

Important Notes

⚠️ Experimental Status: This MCP server and the solutions it helps generate are experimental. Generated configurations should always be reviewed by skilled practitioners before use in any environment.

⚠️ Human Review Required: Even when the tools and workflows mature, human expertise will remain essential for reviewing outputs, making final adjustments, and ensuring configurations meet specific requirements.

About TIM-MCP

TIM-MCP connects AI assistants to curated Terraform IBM Modules so generated infrastructure is more accurate, aligned to IBM Cloud best practices, and grounded in real module interfaces.

To get started quickly, read about TIM-MCP.

Install TIM-MCP

For installation, version pinning, and usage workflows, follow the instructions provided in TIM-MCP tutorial.

Using TIM-MCP

Once configured, your AI assistant can help you build IBM Cloud infrastructure from simple to complex deployments. Ask for help with scenarios like:

Getting Started with IBM Cloud

  • "I am new to IBM Cloud. Help me create a simple and cheap OpenShift cluster and access the console"
  • "I want to create a simple basic virtual server on IBM Cloud and SSH to it"

Building Enterprise Infrastructure

  • "Design a VPC + OpenShift: Create a complete container platform with networking, including multi-zone VPC, subnets, OpenShift/ROKS cluster, and load balancers"
  • "Design a Secure Landing Zone: Implement enterprise-grade security with network isolation, encryption key management, private endpoints, and security groups"
  • "Design a Multi-Zone HA Database: Design resilient database infrastructure across 3+ availability zones with automated failover, backup strategies, and disaster recovery"

Quick Solutions

  • "Design a Quick POC Setup: Rapidly deploy a minimal viable environment with compute instances, basic networking, and essential services for testing"
  • "Design a FS-Validated Architecture: Deploy compliant infrastructure meeting Financial Services requirements with HPCS encryption, audit logging, and regulatory controls"
  • "Design a Hub-Spoke Network: Create an enterprise network architecture with centralized connectivity, network segmentation, and secure VPC interconnection"

Troubleshooting

If you face any issue, use the troubleshooting guide to diagnose and resolve common errors.

Configuration

Basic Configuration

For most users running TIM-MCP locally, you only need these environment variables:

Variable Required Default Description
GITHUB_TOKEN Recommended None GitHub PAT for API rate limits (5000 req/hr vs 60 req/hr)
TIM_LOG_LEVEL No INFO Logging level (DEBUG, INFO, WARNING, ERROR)

Advanced Configuration (Production/Hosting)

These settings are for advanced users deploying TIM-MCP in production or HTTP mode:

Variable Default Description
TIM_CACHE_FRESH_TTL 3600 Fresh cache TTL in seconds
TIM_CACHE_EVICT_TTL 86400 Eviction TTL in seconds (stale entries persist until this)
TIM_CACHE_MAXSIZE 1000 Maximum cache entries (LRU eviction when exceeded)
TIM_GLOBAL_RATE_LIMIT None Global rate limit: max requests per minute across all clients (unset = unlimited)
TIM_PER_IP_RATE_LIMIT None Per-IP rate limit: max requests per minute per client IP in HTTP mode (unset = unlimited)
TIM_RATE_LIMIT_WINDOW 60 Rate limit time window in seconds
TIM_REQUEST_TIMEOUT 30 External API timeout in seconds
TIM_ALLOWED_NAMESPACES terraform-ibm-modules Allowed module namespaces (comma-separated)

Additional Resources

Contributing

If you're interested in contributing to TIM-MCP or modifying the server itself, please see the Development Guide for detailed instructions on development setup, transport modes, and advanced configuration options.

You can report issues and request features for this module in GitHub issues in the module repo. See Report an issue or request a feature.

About

MCP server for Terraform IBM Modules (TIM)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages