<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>Home | Terry-Form MCP</title>
<meta name="generator" content="Jekyll v3.9.5" />
<meta property="og:title" content="Home" />
<meta name="author" content="AJ Geddes" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="Secure, intelligent infrastructure management through Model Context Protocol" />
<meta property="og:description" content="Secure, intelligent infrastructure management through Model Context Protocol" />
<link rel="canonical" href="http://localhost:4000/terry-form-mcp/" />
<meta property="og:url" content="http://localhost:4000/terry-form-mcp/" />
<meta property="og:site_name" content="Terry-Form MCP" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="Home" />
<meta name="twitter:site" content="@terryform" />
<meta name="twitter:creator" content="@AJ Geddes" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"WebSite","author":{"@type":"Person","name":"AJ Geddes"},"dateModified":"2025-10-05T19:55:00-05:00","description":"Secure, intelligent infrastructure management through Model Context Protocol","headline":"Home","name":"Terry-Form MCP","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"http://localhost:4000/terry-form-mcp/assets/images/terry-form-logo.png"},"name":"AJ Geddes"},"sameAs":["https://github.com/aj-geddes/terry-form-mcp"],"url":"http://localhost:4000/terry-form-mcp/"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/terry-form-mcp/assets/css/style.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-tomorrow.min.css">
<link type="application/atom+xml" rel="alternate" href="http://localhost:4000/terry-form-mcp/feed.xml" title="Terry-Form MCP" />
<!-- Mermaid for diagrams -->
<script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
<script>
// Convert code.language-mermaid blocks to div.mermaid for rendering
document.addEventListener('DOMContentLoaded', function() {
document.querySelectorAll('code.language-mermaid').forEach(function(block) {
const pre = block.parentElement;
const div = document.createElement('div');
div.className = 'mermaid';
div.textContent = block.textContent;
pre.parentElement.replaceChild(div, pre);
});
mermaid.initialize({
startOnLoad: true,
theme: window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default'
});
mermaid.init(undefined, document.querySelectorAll('.mermaid'));
});
</script>
</head>
<body>
<nav class="main-nav">
<div class="nav-container">
<a href="/terry-form-mcp/" class="nav-logo">
<img src="/terry-form-mcp/assets/images/terry-form-logo.png" alt="Terry-Form MCP">
<span>Terry-Form MCP</span>
</a>
<button class="nav-toggle" aria-label="Toggle navigation">
<span></span>
<span></span>
<span></span>
</button>
<div class="nav-menu">
<a href="/terry-form-mcp/"
class="nav-link active"
>
Home
</a>
<a href="/terry-form-mcp/getting-started"
class="nav-link "
>
Getting Started
</a>
<a href="/terry-form-mcp/guides/"
class="nav-link "
>
Guides
</a>
<a href="/terry-form-mcp/api/"
class="nav-link "
>
API Reference
</a>
<a href="/terry-form-mcp/architecture/"
class="nav-link "
>
Architecture
</a>
<a href="/terry-form-mcp/tutorials/"
class="nav-link "
>
Tutorials
</a>
<a href="https://github.com/aj-geddes/terry-form-mcp"
class="nav-link "
target="_blank" rel="noopener">
GitHub
<i class="fab fa-github"></i>
</a>
</div>
</div>
</nav>
<main class="main-content">
<div class="home-container">
<div class="hero-section">
<h1 class="hero-title">Terry-Form MCP</h1>
<p class="hero-subtitle">Enterprise-grade Terraform automation through Model Context Protocol</p>
<div class="hero-buttons">
<a href="/terry-form-mcp/getting-started" class="btn btn-primary">Get Started</a>
<a href="/terry-form-mcp/guides/" class="btn btn-secondary">View Guides</a>
<a href="https://github.com/aj-geddes/terry-form-mcp" class="btn btn-github">
<i class="fab fa-github"></i> GitHub
</a>
</div>
</div>
<div class="features-grid">
<div class="feature-card">
<div class="feature-icon">π</div>
<h3>Security First</h3>
<p>Enterprise-hardened with comprehensive security controls, input validation, and sandboxed execution</p>
</div>
<div class="feature-card">
<div class="feature-icon">π€</div>
<h3>AI-Powered</h3>
<p>Intelligent automation with MCP protocol integration for seamless AI assistant workflows</p>
</div>
<div class="feature-card">
<div class="feature-icon">βοΈ</div>
<h3>Multi-Cloud</h3>
<p>Support for AWS, Azure, GCP, and Terraform Cloud with unified management interface</p>
</div>
<div class="feature-card">
<div class="feature-icon">π§</div>
<h3>Developer Friendly</h3>
<p>LSP integration, GitHub App support, and comprehensive API for modern DevOps workflows</p>
</div>
<div class="feature-card">
<div class="feature-icon">π</div>
<h3>Code Intelligence</h3>
<p>LSP-powered validation, security scanning, and best practice recommendations</p>
</div>
<div class="feature-card">
<div class="feature-icon">π</div>
<h3>Production Ready</h3>
<p>Docker containerization with comprehensive security controls and rate limiting</p>
</div>
</div>
<h2 id="what-is-terry-form-mcp">What is Terry-Form MCP?</h2>
<p>Terry-Form MCP v3.0.0 is a secure, production-ready Terraform automation server that integrates with AI assistants through the Model Context Protocol (MCP). It provides a controlled environment for infrastructure-as-code operations with comprehensive LSP integration for intelligent development.</p>
<pre><code class="language-mermaid">graph LR
A[AI Assistant] -->|MCP Protocol| B[Terry-Form Server]
B --> C[Terraform Executor]
B --> D[Security Layer]
B --> E[Cloud Providers]
C --> F[Infrastructure]
D --> G[Validation]
D --> H[Sandboxing]
</code></pre>
<h2 id="key-features">Key Features</h2>
<h3 id="οΈ-security-hardened">π‘οΈ <strong>Security Hardened</strong></h3>
<ul>
<li><strong>Input Validation</strong>: Comprehensive request validation and sanitization</li>
<li><strong>Path Traversal Protection</strong>: Secure file system access controls</li>
<li><strong>Command Injection Prevention</strong>: Safe subprocess execution</li>
<li><strong>Sandboxed Execution</strong>: Isolated Terraform operations</li>
</ul>
<h3 id="-mcp-protocol-integration">π <strong>MCP Protocol Integration</strong></h3>
<ul>
<li><strong>Native MCP Support</strong>: Built for AI assistant integration</li>
<li><strong>Tool Discovery</strong>: Automatic tool registration and documentation</li>
<li><strong>Streaming Responses</strong>: Real-time operation feedback</li>
<li><strong>Error Handling</strong>: Graceful error reporting and recovery</li>
</ul>
<h3 id="οΈ-infrastructure-management">ποΈ <strong>Infrastructure Management</strong></h3>
<ul>
<li><strong>Multi-Workspace</strong>: Manage multiple Terraform workspaces</li>
<li><strong>State Management</strong>: Secure state file handling</li>
<li><strong>Plan Analysis</strong>: Terraform plan execution and validation</li>
<li><strong>LSP Integration</strong>: terraform-ls v0.33.2 for code intelligence</li>
</ul>
<h3 id="-integrations">π <strong>Integrations</strong></h3>
<ul>
<li><strong>GitHub App</strong>: Optional repository integration via GitHub OAuth</li>
<li><strong>Terraform Cloud</strong>: Basic workspace and run monitoring (mock data)</li>
<li><strong>LSP Support</strong>: Full Language Server Protocol integration via terraform-ls</li>
<li><strong>MCP Protocol</strong>: Native Model Context Protocol for AI assistants</li>
</ul>
<h2 id="quick-start">Quick Start</h2>
<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c"># Using Docker</span>
docker run <span class="nt">-d</span> <span class="se">\</span>
<span class="nt">-p</span> 3000:3000 <span class="se">\</span>
<span class="nt">-v</span> /path/to/workspace:/mnt/workspace <span class="se">\</span>
aj-geddes/terry-form-mcp:latest
<span class="c"># Using Docker Compose</span>
docker-compose up <span class="nt">-d</span>
<span class="c"># Configure your AI assistant</span>
<span class="o">{</span>
<span class="s2">"mcpServers"</span>: <span class="o">{</span>
<span class="s2">"terry-form"</span>: <span class="o">{</span>
<span class="s2">"command"</span>: <span class="s2">"docker"</span>,
<span class="s2">"args"</span>: <span class="o">[</span><span class="s2">"run"</span>, <span class="s2">"-i"</span>, <span class="s2">"--rm"</span>, <span class="s2">"-v"</span>, <span class="s2">"./workspace:/mnt/workspace"</span>, <span class="s2">"terry-form-mcp"</span><span class="o">]</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>
<h2 id="use-cases">Use Cases</h2>
<div class="use-cases">
<div class="use-case">
<h3>π’ Enterprise Infrastructure</h3>
<p>Manage complex multi-cloud environments with security controls and compliance</p>
</div>
<div class="use-case">
<h3>π CI/CD Integration</h3>
<p>Automate infrastructure provisioning in your deployment pipelines</p>
</div>
<div class="use-case">
<h3>π₯ Team Collaboration</h3>
<p>Enable safe infrastructure changes through AI-assisted workflows</p>
</div>
<div class="use-case">
<h3>π Learning Platform</h3>
<p>Safe environment for learning and experimenting with Terraform</p>
</div>
</div>
<h2 id="architecture-overview">Architecture Overview</h2>
<pre><code class="language-mermaid">graph TB
subgraph "Client Layer"
A[Claude/AI Assistant]
B[Web Dashboard]
C[CLI Tools]
end
subgraph "Terry-Form MCP"
D[MCP Server]
E[Web Server]
F[Security Layer]
G[Terraform Executor]
H[GitHub App Handler]
I[Cloud Integrations]
end
subgraph "Infrastructure"
J[AWS]
K[Azure]
L[GCP]
M[Terraform Cloud]
end
A -->|MCP| D
B -->|HTTP| E
C -->|MCP| D
D --> F
E --> F
F --> G
F --> H
F --> I
G --> J
G --> K
G --> L
I --> M
</code></pre>
<h2 id="getting-help">Getting Help</h2>
<div class="help-section">
<div class="help-card">
<h3>π Documentation</h3>
<p>Comprehensive guides and API reference</p>
<a href="/terry-form-mcp/guides/">View Guides β</a>
</div>
<div class="help-card">
<h3>π¬ Community</h3>
<p>Join our community for support and discussions</p>
<a href="https://github.com/aj-geddes/terry-form-mcp/discussions">GitHub Discussions β</a>
</div>
<div class="help-card">
<h3>π Issues</h3>
<p>Report bugs or request features</p>
<a href="https://github.com/aj-geddes/terry-form-mcp/issues">GitHub Issues β</a>
</div>
</div>
<h2 id="latest-updates">Latest Updates</h2>
<hr />
<div class="footer-cta">
<h2>Ready to get started?</h2>
<p>Deploy Terry-Form MCP in minutes and start automating your infrastructure</p>
<a href="/terry-form-mcp/getting-started" class="btn btn-large">Get Started Now β</a>
</div>
</div>
<style>
.hero-section {
text-align: center;
padding: 4rem 2rem;
background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
color: white;
border-radius: 1rem;
margin-bottom: 3rem;
}
.hero-title {
font-size: 3rem;
margin-bottom: 1rem;
font-weight: 700;
}
.hero-subtitle {
font-size: 1.5rem;
margin-bottom: 2rem;
opacity: 0.9;
}
.hero-buttons {
display: flex;
gap: 1rem;
justify-content: center;
flex-wrap: wrap;
}
.btn {
display: inline-block;
padding: 0.75rem 1.5rem;
border-radius: 0.5rem;
text-decoration: none;
font-weight: 500;
transition: all 0.3s ease;
}
.btn-primary {
background: #4CAF50;
color: white;
}
.btn-primary:hover {
background: #45a049;
transform: translateY(-2px);
}
.btn-secondary {
background: #2196F3;
color: white;
}
.btn-secondary:hover {
background: #1976D2;
transform: translateY(-2px);
}
.btn-github {
background: #24292e;
color: white;
}
.btn-github:hover {
background: #1a1e22;
transform: translateY(-2px);
}
.features-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 2rem;
margin: 3rem 0;
}
.feature-card {
background: #f8f9fa;
padding: 2rem;
border-radius: 0.5rem;
text-align: center;
transition: transform 0.3s ease;
border: 1px solid #e9ecef;
}
.feature-card:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
.feature-icon {
font-size: 3rem;
margin-bottom: 1rem;
}
.use-cases {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 1.5rem;
margin: 2rem 0;
}
.use-case {
background: #e8f5e9;
padding: 1.5rem;
border-radius: 0.5rem;
border-left: 4px solid #4CAF50;
}
.help-section {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 2rem;
margin: 3rem 0;
}
.help-card {
text-align: center;
padding: 2rem;
background: #f5f5f5;
border-radius: 0.5rem;
}
.update-card {
margin: 1rem 0;
padding: 1.5rem;
background: #f8f9fa;
border-radius: 0.5rem;
border-left: 3px solid #2196F3;
}
.footer-cta {
text-align: center;
padding: 3rem;
background: #f0f7ff;
border-radius: 1rem;
margin: 3rem 0;
}
.btn-large {
font-size: 1.2rem;
padding: 1rem 2rem;
}
/* Dark mode support */
@media (prefers-color-scheme: dark) {
.feature-card {
background: #2a2a2a;
border-color: #444;
color: #fff;
}
.use-case {
background: #1e3a1e;
border-left-color: #4CAF50;
}
.help-card {
background: #2a2a2a;
color: #fff;
}
.update-card {
background: #2a2a2a;
color: #fff;
}
.footer-cta {
background: #1a1a2e;
color: #fff;
}
}
</style>
</main>
<footer class="site-footer">
<div class="footer-container">
<div class="footer-section">
<h4>Terry-Form MCP</h4>
<p>Enterprise-grade Terraform automation through Model Context Protocol</p>
<div class="social-links">
<a href="https://github.com/aj-geddes/terry-form-mcp" aria-label="GitHub">
<i class="fab fa-github"></i>
</a>
<a href="https://twitter.com/terryform" aria-label="Twitter">
<i class="fab fa-twitter"></i>
</a>
</div>
</div>
<div class="footer-section">
<h4>Documentation</h4>
<ul>
<li><a href="/terry-form-mcp/getting-started">Getting Started</a></li>
<li><a href="/terry-form-mcp/guides/">Guides</a></li>
<li><a href="/terry-form-mcp/api/">API Reference</a></li>
<li><a href="/terry-form-mcp/tutorials/">Tutorials</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Community</h4>
<ul>
<li><a href="https://github.com/aj-geddes/terry-form-mcp/discussions">Discussions</a></li>
<li><a href="https://github.com/aj-geddes/terry-form-mcp/issues">Issues</a></li>
</ul>
</div>
<div class="footer-section">
<h4>Resources</h4>
<ul>
<li><a href="/terry-form-mcp/architecture/">Architecture</a></li>
<li><a href="/terry-form-mcp/guides/security">Security</a></li>
</ul>
</div>
</div>
<div class="footer-bottom">
<p>© 2025 Terry-Form MCP. Built with β€οΈ by <a href="https://github.com/aj-geddes">AJ Geddes</a></p>
</div>
</footer>
<script src="/terry-form-mcp/assets/js/main.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/prism.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-bash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-json.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-yaml.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-python.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-hcl.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/normalize-whitespace/prism-normalize-whitespace.min.js"></script>
</body>
</html>