Skip to main content

Available Tools

Complete reference for the 3 MCP tools provided by the Terraform MCP Server.


🛠️ Tool Summary

ToolDescription
terraform_executeSecure execution of Terraform commands with validation
terraform_doc_searchSemantic similarity search over Terraform documentation
ingest_terraform_docsDocument ingestion with vector embeddings

1. terraform_execute

Secure execution of Terraform commands with enterprise-grade security and validation.

Supported Commands

CommandDescriptionAuto-Approve
initInitialize Terraform configurationNo
planPreview infrastructure changesNo
validateValidate configuration syntaxNo
applyApply infrastructure changesYes
destroyDestroy infrastructureYes

Parameters

ParameterTypeRequiredDefaultDescription
commandstringYes-Terraform command to execute
working_directorystringYes-Directory containing .tf files
variablesdictNoNoneTerraform variables to pass
aws_regionstringNoNoneAWS region for execution
strip_ansibooleanNoTrueRemove ANSI color codes
timeoutintegerNo300Execution timeout (1-1800 seconds)

Security Features

FeatureDescription
Command WhitelistingOnly allowed commands can be executed
Directory Traversal ProtectionBlocks paths containing ..
Pattern DetectionScans for 100+ dangerous patterns
Variable LimitsMaximum 100 variables per execution
Timeout EnforcementAutomatic process termination
Output Sanitization10,000 character limit

Usage Examples

Initialize Terraform:

"Initialize Terraform in /tmp/terraform-project"

Plan with Variables:

"Run terraform plan in /tmp/project with environment=production, instance_count=3, and AWS region us-west-2"

Apply Configuration:

"Apply the terraform configuration in /tmp/project with instance_type=t3.micro"

Validate Configuration:

"Validate the terraform configuration in /tmp/project"

Response Structure

{
"success": true,
"data": {
"command": "terraform plan",
"status": "success",
"result": {
"return_code": 0,
"stdout": "Terraform will perform...",
"stderr": "",
"execution_time": 2.45
},
"metadata": {
"terraform_version": "1.5.0",
"aws_region": "us-west-2",
"variables_count": 2,
"security_checks_passed": true
}
}
}

Semantic similarity search over ingested Terraform documentation using vector embeddings.

Parameters

ParameterTypeRequiredDefaultDescription
querystringYes-Search query (1-1000 chars)
top_kintegerNo5Number of results (1-50)
similarity_thresholdfloatNo0.7Minimum similarity (0.0-1.0)
node_typeslistNoNoneDocument types to search

Node Types

TypeDescriptionIndex Name
resourceTerraform resource documentationdocchunk_resource_embedding_hnsw
data_sourceTerraform data source docsdocchunk_datasource_embedding_hnsw
best_practiceBest practices and guidelinesdocchunk_bestpractice_embedding_hnsw

Search Features

FeatureDescription
HNSW IndexFast similarity search
Cosine SimilaritySemantic matching scoring
Multi-Type SearchSearch across multiple doc types
Threshold FilteringConfigurable precision/recall
Result DistributionEven distribution across types

Usage Examples

Search Resources:

"Find AWS S3 bucket configuration examples"

Search Data Sources:

"Search for VPC data source configuration"

Search Best Practices:

"What are the best practices for Terraform state management?"

Multi-Type Search:

"Search for EC2 instance configuration in resources and best practices"

Response Structure

{
"success": true,
"data": {
"query": "AWS EC2 instance configuration",
"results_count": 3,
"results": [
{
"content": "resource \"aws_instance\" \"example\" {...}",
"similarity_score": 0.89,
"node_type": "resource",
"id": "docchunk_001"
}
],
"search_parameters": {
"top_k": 5,
"similarity_threshold": 0.7
},
"service_info": {
"provider": "openai",
"model": "text-embedding-ada-002",
"dimensions": 1536
}
}
}

3. ingest_terraform_docs

Sophisticated document processing system for ingesting Terraform documentation into the knowledge graph.

Parameters

ParameterTypeRequiredDefaultDescription
filter_typeslistYes-Document types to ingest
filter_serviceslistNoNoneAWS services to filter
scan_dirslistNo["docs/"]Directories to scan

Filter Types

TypeDescriptionProcessing
resourceTerraform resource docsStructured chunking
data_sourceData source documentationStructured chunking
terraformBoth resources and data sourcesStructured chunking
best_practiceBest practices documentsLLM extraction
readmeREADME filesStandard chunking

Ingestion Features

FeatureDescription
Multi-Format SupportHTML, Markdown, PDF
Intelligent DiscoveryIndex-based and directory scanning
LLM ExtractionAI-powered content structuring
Semantic ChunkingMetadata preservation
Incremental ProcessingSkip already ingested docs
Neo4j StorageGraph database with vector indexes

Usage Examples

Ingest Resources and Data Sources:

"Ingest AWS provider resources and data sources"

Ingest Best Practices:

"Ingest Terraform best practices documentation"

Ingest READMEs:

"Ingest README files from the project"

Filter by Service:

"Ingest only EC2 and S3 resources"

Response Structure

{
"success": true,
"data": {
"ingestion_summary": {
"total_documents": 150,
"successful": 148,
"failed": 2,
"skipped": 0
},
"types_processed": ["resource", "data_source"],
"chunks_created": 1250,
"embeddings_generated": 1250
}
}

Document Processing Pipeline

StageDescription
DiscoveryParse index files, scan directories
DetectionIdentify HTML, Markdown, PDF
ExtractionLoad and extract content
ChunkingCreate semantic chunks with metadata
EmbeddingGenerate vector embeddings
StorageStore in Neo4j with vector indexes

Best Practices

For terraform_execute

  1. Use Specific Directories: Always use valid working directories
  2. Set Appropriate Timeouts: Increase for complex operations
  3. Review Variables: Ensure no dangerous patterns
  4. Check Return Codes: Verify successful execution
  1. Use Specific Queries: More specific yields better results
  2. Adjust Thresholds: Higher for precision, lower for recall
  3. Filter by Type: Focus on relevant document types
  4. Iterate: Refine queries based on results

For ingest_terraform_docs

  1. Start Small: Begin with specific services
  2. Monitor Progress: Check ingestion logs
  3. Use Incremental: Leverage existing ingestion state
  4. Verify Quality: Check ingested content quality

Next Steps