Resmi Terraform MCP Server, Terraform ekosistemiyle sorunsuz bir şekilde entegre olarak sağlayıcı keşfedilmesi, modül analizi ve Registry API entegrasyonu sağlayarak gelişmiş Infrastructure as Code iş akışlarını destekler.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"hashicorp-terraform-mcp-server": {
"command": "node",
"args": [
"~/.mcp/terraform-mcp-server/index.js"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/hashicorp/terraform-mcp-server.git ~/.mcp/terraform-mcp-server
cd ~/.mcp/terraform-mcp-server Terraform MCP Sunucusu, Model Context Protocol (MCP) sunucusu olup Terraform Registry API'leriyle sorunsuz entegrasyon sağlayarak, Altyapı Kod Olarak (IaC) geliştirme için gelişmiş otomasyon ve etkileşim yetenekleri sunar.
Güvenlik Notu: Bu aşamada MCP sunucusu yalnızca yerel kullanım için tasarlanmıştır. StreamableHTTP transportunu kullanıyorsanız, erişimi yalnızca güvenilen kaynaklar ile sınırlamak için her zaman MCP_ALLOWED_ORIGINS ortam değişkenini yapılandırın. Bu, DNS rebinding saldırılarını ve diğer cross-origin açıklarını önlemeye yardımcı olur.
Güvenlik Notu: Sorguya bağlı olarak MCP sunucusu belirli Terraform verilerini MCP istemcisine ve LLM'ye maruz bırakabilir. MCP sunucusunu güvenilmeyen MCP istemcileri veya LLM'ler ile kullanmayın.
Yasal Notu: Üçüncü taraf MCP İstemcisi/LLM kullanımınız yalnızca söz konusu MCP/LLM'nin kullanım şartlarına tabidir ve IBM, bu tür üçüncü taraf araçların performansından sorumlu değildir. IBM, üçüncü taraf MCP İstemcileri/LLM'ler için tüm garantileri ve sorumluluğu açıkça reddetmektedir ve bu tür üçüncü taraf araçlar tarafından neden olunan sorunları çözmek için destek sağlayamayabilir.
Dikkat: MCP sunucusu tarafından sağlanan çıktılar ve öneriler dinamik olarak oluşturulur ve sorguya, modele ve bağlı MCP istemcisine göre değişebilir. Kullanıcılar, uygulamadan önce tüm çıktıları/önerileri kuruluşlarının güvenlik en iyi uygulamaları, maliyet verimlilik hedefleri ve uyum gereksinimleriyle uyumlu olduğundan emin olmak için kapsamlı bir şekilde gözden geçirmelidir.
Ortam Değişkenleri:
| Değişken | Açıklama | Varsayılan |
|---|---|---|
TFE_ADDRESS |
HCP Terraform veya TFE adresi | "https://app.terraform.io" |
TFE_TOKEN |
Terraform Enterprise API token'ı | "" (boş) |
TFE_SKIP_TLS_VERIFY |
HCP Terraform veya Terraform Enterprise TLS doğrulamasını atla | false |
LOG_LEVEL |
Günlükleme seviyesi: trace, debug, info, warn, error, fatal, panic (--log-level bayrağını geçersiz kılar) |
info |
LOG_FORMAT |
Günlükleme biçimi: text veya json (--log-format bayrağını geçersiz kılar) |
text |
TRANSPORT_MODE |
HTTP transportu etkinleştirmek için streamable-http'ye ayarlayın (eski http değeri hala desteklenmektedir) |
stdio |
TRANSPORT_HOST |
HTTP sunucusunun bağlanacağı host | 127.0.0.1 |
TRANSPORT_PORT |
HTTP sunucusu portu | 8080 |
MCP_ENDPOINT |
HTTP sunucusu uç nokta yolu | /mcp |
MCP_KEEP_ALIVE |
SSE bağlantıları için keep-alive aralığı (örn. 30s, 1m). Devre dışı bırakmak için 0 | 0 |
MCP_SESSION_MODE |
Oturum modu: stateful veya stateless |
stateful |
MCP_ALLOWED_ORIGINS |
CORS için virgülle ayrılmış izin verilen kaynakların listesi | "" (boş) |
MCP_CORS_MODE |
CORS modu: strict, development veya disabled |
strict |
MCP_TLS_CERT_FILE |
TLS sertifika dosyasının yolu, localhost olmayan dağıtım için gerekli (örn. /path/to/cert.pem) |
"" (boş) |
MCP_TLS_KEY_FILE |
TLS anahtar dosyasının yolu, localhost olmayan dağıtım için gerekli (örn. /path/to/key.pem) |
"" (boş) |
MCP_RATE_LIMIT_GLOBAL |
Global hız sınırı (biçim: rps:burst) |
10:20 |
MCP_RATE_LIMIT_SESSION |
Oturum başına hız sınırı (biçim: rps:burst) |
5:10 |
ENABLE_TF_OPERATIONS |
Açık onay gerektiren araçları etkinleştir | false |
OTEL_METRICS_ENABLED |
Otel kullanarak araç ve sunucu metriklerini etkinleştir | false |
OTEL_METRICS_SERVICE_VERSION |
Metrikleri gönderen terraform-mcp-server sürümü, metrik özniteliklerini ayarlamak için kullanılır. Ayrıca farklı dağıtımlar arasında metrikleri izlemeye yardımcı olur | latest |
OTEL_METRICS_SERVICE_NAME |
Metriklerin kaynağını belirler (örn. "terraform-mcp-server") | terraform-mcp-server |
OTEL_METRICS_EXPORT_INTERVAL |
Metrik fluslarının sıklığını kontrol eder | 2 |
OTEL_METRICS_ENDPOINT |
OTel Collector'ın veya backend'in URL'si | localhost:4318 |
# Stdio modu
terraform-mcp-server stdio [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
# StreamableHTTP modu
terraform-mcp-server streamable-http [--transport-port 8080] [--transport-host 127.0.0.1] [--mcp-endpoint /mcp] [--log-file /path/to/log] [--log-level info] [--log-format text] [--toolsets <toolsets>] [--tools <tools>]
MCP sunucusunun varsayılan talimatları cmd/terraform-mcp-server/instructions.md dosyasında yer almaktadır; bu talimatlar kuruluşunuzun Terraform uygulamaları için uygun görünmüyorsa veya MCP sunucusu yanlış yanıtlar üretiyorsa, lütfen bunları kendi talimatlarınızla değiştirin ve container'ı veya binary'yi yeniden derleyin. Böyle bir talimat örneği instructions/example-mcp-instructions.md konumunda yer almaktadır.
AGENTS.md temelde kodlama ajanları için README'ler gibi davranır: yapay zeka kodlama ajanlarının projeniz üzerinde çalışmasına yardımcı olmak için bağlam ve talimatlar sağlamaya yönelik adanmış, öngörülebilir bir yer. Bir AGENTS.md dosyası farklı kodlama ajanlarıyla çalışır. Böyle bir talimat örneği instructions/example-AGENTS.md konumunda yer almaktadır; bunu kullanmak için Terraform yapılandırmalarınızın bulunduğu dizine AGENTS.md adında bir dosya commit'leyin.
Aşağıdaki JSON bloğunu VS Code'daki Kullanıcı Ayarları (JSON) dosyasına ekleyin. Bunu Ctrl + Shift + P tuşlarına basıp Preferences: Open User Settings (JSON) yazarak yapabilirsiniz.
VS Code'un agent modu dokümantasyonunda MCP sunucusu araçlarını kullanma hakkında daha fazla bilgi.
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
İsteğe bağlı olarak, çalışma alanınızda .vscode/mcp.json adlı bir dosyaya benzer bir örnek (yani mcp anahtarı olmadan) ekleyebilirsiniz. Bu, konfigürasyonu diğerleriyle paylaşmanıza izin verecektir.
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
Bunu Cursor konfigürasyonunuza (~/.cursor/mcp.json) veya Ayarlar → Cursor Ayarları → MCP üzerinden ekleyin:
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
Claude Desktop'ta MCP sunucusu araçlarını kullanma hakkında daha fazla bilgi için kullanıcı dokümantasyonuna bakın. Amazon Q Developer ve Kiro CLI'de MCP sunucusu kullanma hakkında daha fazla bilgi edinin.
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
Claude Code'da MCP sunucusu araçlarını kullanma ve ekleme hakkında daha fazla bilgi için kullanıcı dokümantasyonuna bakın.
stdio) Transportclaude mcp add terraform -s user -t stdio -- docker run -i --rm hashicorp/terraform-mcp-server
streamable-http) Transport# Sunucuyu çalıştır (örnek)
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 hashicorp/terraform-mcp-server
# Claude Code'a ekle
claude mcp add --transport http terraform http://localhost:8080/mcp
Güvenlik için, kimlik bilgilerinizi hardcode etmeyin; HCP Terraform veya Terraform Enterprise kimlik bilgilerini depolamak için ~/.gemini/.env oluşturun veya güncelleyin (burada ~ ev veya proje dizininizdir)
# ~/.gemini/.env
TFE_ADDRESS=your_tfe_address_here
TFE_TOKEN=your_tfe_token_here
Uzantıyı yükleyin ve Gemini'yi çalıştırın
gemini extensions install https://github.com/hashicorp/terraform-mcp-server
gemini
Bob IDE veya Shell'de MCP sunucusu araçlarını kullanma ve ekleme hakkında daha fazla bilgi için Bob'da MCP Kullanımı bölümüne bakın.
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
En son release sürümünü kullanın:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@latest
main branch'ini kullanın:
go install github.com/hashicorp/terraform-mcp-server/cmd/terraform-mcp-server@main
| Sürüm 0.3.0+ veya daha yüksek | Sürüm 0.2.3 veya daha düşük |
|---|---|
|
|
Sunucuyu kullanmadan önce Docker imajını yerel olarak derlemeniz gerekir:
git clone https://github.com/hashicorp/terraform-mcp-server.git
cd terraform-mcp-server
make docker-build
# Stdio modunda çalıştır
docker run -i --rm terraform-mcp-server:dev
# streamable-http modunda çalıştır
docker run -p 8080:8080 --rm -e TRANSPORT_MODE=streamable-http -e TRANSPORT_HOST=0.0.0.0 terraform-mcp-server:dev
# Araçları filtrele (isteğe bağlı)
docker run -i --rm terraform-mcp-server:dev --toolsets=registry,terraform
docker run -i --rm terraform-mcp-server:dev --tools=search_providers,get_provider_details
Not: Docker'da çalıştırırken, container'ın dışından bağlantılara izin vermek için
TRANSPORT_HOST=0.0.0.0ayarlamalısınız.
# Bağlantıyı test et
curl http://localhost:8080/health
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"terraform-mcp-server:dev"
]
}
}
}
Mevcut araçları burada kontrol edin :link:
Mevcut kaynakları burada kontrol edin :link:
İki tür metrik toplanmaktadır. İlk olarak, HTTP mux'u otelhttp.NewHandler(...) ile kaplayarak standart HTTP sunucusu metrikleri eklenir. Bu, aşağıdakileri yayarlar:
İkincisi, MCP sunucusu MCP hooks'ları (BeforeCallTool / AfterCallTool) kullanarak araç yürütme etrafında özel araç metrikleri kaydeder. Bunlar aşağıdakileri yayarlar:
--toolsets (gruplar) veya --tools (bireysel) kullanarak hangi araçların kullanılabilir olduğunu kontrol edin:
# Araç gruplarını etkinleştir (varsayılan: registry)
terraform-mcp-server --toolsets=registry,terraform
# Yalnızca belirli araçları etkinleştir
terraform-mcp-server --tools=search_providers,get_provider_details,list_workspaces
Mevcut araç setleri: registry, registry-private, terraform, all, default. Bireysel araç adları için pkg/toolsets/mapping.go dosyasına bakın. Her iki bayrağı birlikte kullanamaz.
Terraform MCP Sunucusu birden fazla transport protokolünü destekler:
JSON-RPC mesajlarını kullanarak standart giriş/çıkış iletişimi. Yerel geliştirme ve MCP istemcileriyle doğrudan entegrasyon için idealdir.
Hem doğrudan HTTP isteklerini hem de Sunucu Tarafından Gönderilen Olayları (SSE) akışlarını destekleyen modern HTTP tabanlı transport. Bu, uzak/dağıtılmış kurulumlar için önerilen transporttur.
Özellikler:
http://{hostname}:8080/mcphttp://{hostname}:8080/healthTRANSPORT_MODE=http veya TRANSPORT_PORT=8080 ayarlayınTerraform MCP Sunucusu, StreamableHTTP transportu kullanılırken iki oturum modunu destekler:
Stateless modunu etkinleştirmek için ortam değişkenini ayarlayın:
export MCP_SESSION_MODE=stateless
Kurumsal TLS denetimi yapan bir proxy'nin arkasındaysanız (Zscaler Internet Access gibi), sertifika hataları görebilirsiniz:
tls: failed to verify certificate: x509: certificate signed by unknown authority
Çözüm: Kurumsal CA sertifikanızı container'a bağlayın:
docker run -i --rm \
-v /path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem \
-e SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem \
hashicorp/terraform-mcp-server:0.5.2
MCP istemci konfigürasyonları için:
{
"mcpServers": {
"terraform": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v", "/path/to/corporate-ca.pem:/etc/ssl/certs/corporate-ca.pem",
"-e", "SSL_CERT_FILE=/etc/ssl/certs/corporate-ca.pem",
"-e", "TFE_TOKEN=<>",
"hashicorp/terraform-mcp-server:0.5.2"
]
}
}
}
Alternatif: Binary'yi doğrudan çalıştırın
Docker'ın ortamınızda izin verilmemesi
AWS MCP sunucuları, AWS hizmetleri ve kaynaklarıyla sorunsuz entegrasyon için tasarlanmıştır.
Kubernetes toplu port yönlendirmesi, service discovery, /etc/hosts yönetimi, traffic izleme ve pod log akışını bir arada sunan araç.
Cloudflare Workers, KV, R2 ve D1 hizmetleriyle entegrasyon
Kubernetes MCP sunucusu OpenShift desteğiyle, **herhangi bir** Kubernetes kaynağına yönelik CRUD işlemleri sağlamasının yanı sıra kümenizle etkileşim kurmak için özel araçlar sunar.
Kubernetes kümesi işlemleri için pod, deployment ve service yönetimini sağlayan TypeScript uygulaması.
WeChat Mini-Program ve full-stack uygulamalar için hepsi-bir-arada backend servisleri. Serverless cloud function'lar, veritabanları ve WeChat ekosistemi üzerinden Çin pazarına erişimle birlikte production'a tek tıklamayla deployment yapılabilen özel MCP araçları sunar.