Terraform IBM Modules MCP - An MCP server for discovering and working with Terraform IBM Modules from the Terraform Registry
TIM-MCP demonstrates solid definition quality with well-structured tools, comprehensive descriptions, and clear parameter documentation. All 7 tools have descriptions exceeding 20 characters with good WHEN TO USE guidance. Input schemas are fully visible with proper types and descriptions. However, output schemas are not documented, error handling lacks recovery guidance, and tool names could better distinguish functions. The server shows above-average quality for a community MCP but falls short of A-grade due to missing output schema documentation and limited error categorization.
Get the actual content of files, examples, or documentation from a module. USE CASES: - Read example terraform configurations to understand real-world usage - View module documentation and descriptions - See actual variable definitions and outputs - Get code samples to build upon - Copy working examples for your infrastructure TYPES OF CONTENT: - Example files (e.g., main.tf, variables.tf, outputs.tf from examples/) - Submodule documentation and code - Module README and descriptions - Other documentation files
Get complete details for a specific example - including description, variables, outputs, and full code. USE CASES: - Understand what a specific example demonstrates - See all inputs (variables) and outputs for an example - Get the complete working code ready to use - Learn best practices from official examples - Understand dependencies and resources created WHAT YOU GET: - Example description explaining what it shows - All variables (inputs) with types and descriptions - All outputs with descriptions - Complete, working terraform code files - Resource information and best practices
Get the latest version of a module from Terraform Registry. USE CASES: - Determine the current recommended version to use - Check for version updates - Ensure you're using recent features and fixes - Get version constraints for your configurations RETURNS: - Latest stable version (pre-releases are excluded) - Version metadata and release information
Get structured module metadata from Terraform Registry - for understanding module interface when writing NEW terraform. WHEN TO USE (Development workflow only): - When user needs to CREATE/BUILD new terraform configurations - To understand required inputs/outputs for custom implementations - To check compatibility and requirements before development - When user asks about "inputs", "outputs", "parameters", "interface" WHEN NOT TO USE: - Skip this when user wants examples/samples (use list_content → get_content instead) - Skip when existing examples are available - prefer actual working code WHAT THIS PROVIDES: - Module description and documentation - Required inputs (variables) with types and descriptions - Available outputs with descriptions - Provider requirements and version constraints - Module dependencies
Output schemas not documented. Tools return strings (e.g., 'str' return type in search_modules) but LLM cannot infer structure of results. Documentation must specify JSON fields, types, and array structures returned.
Error handling lacks recovery guidance. Source code shows exception handling (TIMError, ValidationError) but tool descriptions do not explain what errors users should expect or what to do if a call fails (e.g., 'Module not found' should suggest search_modules as next step).
Parameter 'exclude_paths' and 'include_paths' in list_content accept both array and string|null with union type (['array','string','null']). This ambiguous type definition will confuse LLMs. Use a single clear type (array of strings) with proper validation and conversion (as seen in _sanitize_list_parameter helper).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | <=2025-11-25 | v2 |
| 2026-03-09 | C | 61 | - | v1 |
Get the IBM Cloud Terraform best practices white paper. USE CASES: - Learn Terraform best practices on IBM Cloud - Understand how to structure Terraform projects - Get guidance on modules, variables, and outputs - Learn about IBM Cloud specific considerations - Reference architecture patterns CONTENT: - Best practices for Terraform on IBM Cloud - Module design patterns - State management guidance - Security considerations - Production deployment practices
List module content - files, examples, and submodules available in a specific module. USE CASES: - Explore what's available in a module before diving into details - Find example configurations (use paths from results with get_content) - Discover submodules for specialized use cases - Understand module structure and organization OUTPUT PROVIDES: - Example configurations with descriptions - Submodules for specialized deployments - Available documentation files - Quick preview of what's in the module
Search TIM modules by module name, service category, or relevant multi-word description phrases. SEARCH TIPS: - Use specific terms such as "vpc", "networking", or "secrets manager".
Tool names 'get_module_details' and 'get_module_details' vs 'list_content' + 'get_content' create mild ambiguity. LLMs must reason about when to call 'get_module_details' (interface/metadata) vs 'get_content' (file content). Consider renaming to 'get_module_interface' and 'get_file_content' for clarity.
Tool 'get_terraform_whitepaper' takes no parameters ({}). Output is not documented. LLM cannot predict response structure (is it plain text, JSON, markdown?). This tool would benefit from an output_format parameter (enum: text, markdown, json) to let callers choose their preferred format.