hashicorp mcp服务器掌舵
Helm Chart部署HashiCorp的MCP服务器
注: 这些Helm图表是“按原样”提供的,并非由HashiCorp正式维护。
概述
此存储库包含用于在Kubernetes上部署HashiCorp模型上下文协议(MCP)服务器的Helm charts。MCP服务器为AI助手和其他工具提供了一个与HashiCorp产品交互的接口。
可用图表
hashicorp mcp(父图表)
一个统一的父图,部署了多个具有单一入口配置的HashiCorp MCP服务器,用于集中路由。
特征:
- 具有基于路径的路由的单个域(例如。,
mcp.example.com/terraform,mcp.example.com/vault) - 根据需要启用/禁用单个MCP服务器
- 集中式TLS和入口配置
- 同时支持Kubernetes Ingress和Gateway API HTTPRoute
在以下情况下使用此图表:
- 您希望在统一域下部署多个MCP服务器
- 您更喜欢集中式入口和TLS管理
- 您希望为不同的MCP服务提供基于路径的路由
📖 全部文件
地形mcp(独立图表)
部署Terraform MCP服务器,用于与Terraform企业/云进行交互。
特征:
- 通过MCP管理Terraform工作区、运行和配置
- 可选的Terraform企业/云集成
- 具有可选入口或网关API HTTPRoute的独立部署
- 可以独立使用,也可以作为父图表的一部分使用
在以下情况下使用此图表:
- 您只需要Terraform MCP功能
- 您需要独立的部署和管理
- 您有现有的入口基础设施
📖 全部文件
保险库mcp(独立图表)
部署Vault MCP服务器以与HashiCorp Vault交互。
特征:
- 通过MCP管理机密、身份验证和Vault操作
- 支持基于令牌的身份验证和替代方法(AppRole、Kubernetes身份验证)
- 具有可选入口或网关API HTTPRoute的独立部署
- 可以独立使用,也可以作为父图表的一部分使用
在以下情况下使用此图表:
- 您只需要Vault MCP功能
- 您需要独立的部署和管理
- 您有现有的入口基础设施
📖 全部文件
快速开始
从Helm存储库安装
# Add the Helm repository
helm repo add hashicorp-mcp https://sammcgeown.github.io/hashicorp-mcp-servers-helm/
helm repo update
# Deploy all MCP servers (unified ingress)
helm install hashicorp-mcp hashicorp-mcp/hashicorp-mcp -n mcp-servers --create-namespace
# OR deploy individual MCP servers
helm install terraform-mcp hashicorp-mcp/terraform-mcp -n mcp-servers --create-namespace
helm install vault-mcp hashicorp-mcp/vault-mcp -n mcp-servers --create-namespace从源代码安装
# Clone the repository
git clone https://github.com/sammcgeown/hashicorp-mcp-servers-helm.git
cd hashicorp-mcp-servers-helm
# Deploy all MCP servers (unified ingress)
helm dependency update charts/hashicorp-mcp
helm install hashicorp-mcp charts/hashicorp-mcp -n mcp-servers --create-namespace
# OR deploy individual MCP servers
helm install terraform-mcp charts/terraform-mcp -n mcp-servers --create-namespace
helm install vault-mcp charts/vault-mcp -n mcp-servers --create-namespace验证部署
# Check pods are running
kubectl get pods -n mcp-servers
# Run connectivity tests
helm test hashicorp-mcp -n mcp-servers访问服务
访问地址:
https://mcp.example.com/terraform/mcphttps://mcp.example.com/vault/mcp
建筑
┌─────────────────────────────────────────────────────────────┐
│ hashicorp-mcp (Parent) │
│ │
│ ┌────────────────────────────────────────────────────┐ │
│ │ Unified Ingress / HTTPRoute │ │
│ │ https://mcp.example.com │ │
│ └────────────────────────────────────────────────────┘ │
│ │ │ │
│ /terraform │ │ /vault │
│ ▼ ▼ │
│ ┌──────────────────────┐ ┌──────────────────────┐ │
│ │ terraform-mcp │ │ vault-mcp │ │
│ │ (subchart) │ │ (subchart) │ │
│ └──────────────────────┘ └──────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
OR deploy independently:
┌──────────────────────┐ ┌──────────────────────┐
│ terraform-mcp │ │ vault-mcp │
│ (standalone) │ │ (standalone) │
│ Own ingress/domain │ │ Own ingress/domain │
└──────────────────────┘ └──────────────────────┘先决条件
- 库贝内特斯1.21+
- Helm 3.0+
- (可选)用于自动TLS证书管理的证书管理器
- (可选)Terraform企业/云帐户和令牌(用于Terraform MCP)
- (可选)HashiCorp Vault实例和令牌(用于Vault MCP)
配置
每个图表都可以独立配置。有关详细的配置选项,请参阅各个图表文档。
常见配置模式
配置机密:
# Terraform token
kubectl create secret generic tfe-token-secret \
--from-literal=TFE_TOKEN=your-token -n mcp-servers
# Vault token
kubectl create secret generic vault-token-secret \
--from-literal=VAULT_TOKEN=your-token -n mcp-servers在独立图表上启用入口:
ingress:
enabled: true
ingressClassName: nginx
host: terraform-mcp.example.com使用网关API HTTPRoute而不是Ingress:
ingress:
enabled: false
httproute:
enabled: true
hostnames:
- mcp.example.com
parentRefs:
- name: my-gateway
namespace: gateway-system启用播客中断预算(建议用于生产):
podDisruptionBudget:
enabled: true
minAvailable: 1在VS代码中使用MCP服务器
部署MCP服务器后,您可以使用HTTP传输模式从VS Code连接到它们。
先决条件
- 带有GitHub Copilot扩展的VS代码
- MCP服务器已部署,可通过入口或端口转发访问
配置
将MCP服务器添加到您的VS代码设置中:
选项1:通过设置UI
- 打开VS代码设置(Cmd+,在macOS上,Ctrl+,在Windows/Linux上)
- 搜索“MCP服务器”
- 点击“在settings.json中编辑”
选项2:直接设置.json编辑
打开您的VS代码 settings.json 并添加MCP服务器配置:
{
"github.copilot.chat.mcp.servers": {
"terraform-mcp": {
"type": "http",
"url": "https://mcp.example.com/terraform/mcp"
},
"vault-mcp": {
"type": "http",
"url": "https://mcp.example.com/vault/mcp"
}
}
}对于端口转发服务器(开发):
{
"github.copilot.chat.mcp.servers": {
"terraform-mcp": {
"type": "http",
"url": "http://localhost:8080/mcp"
},
"vault-mcp": {
"type": "http",
"url": "http://localhost:8081/mcp"
}
}
}港口发展货运
如果您在没有入口的情况下进行本地测试:
# Forward Terraform MCP (standalone)
kubectl port-forward -n mcp-servers svc/terraform-mcp-terraform-mcp-svc 8080:80
# In another terminal, forward Vault MCP (standalone)
kubectl port-forward -n mcp-servers svc/vault-mcp-vault-mcp-svc 8081:80对于统一的父图表(发布名称 hashicorp-mcp):
# Forward Terraform MCP
kubectl port-forward -n mcp-servers svc/hashicorp-mcp-terraform-mcp-svc 8080:80
# In another terminal, forward Vault MCP
kubectl port-forward -n mcp-servers svc/hashicorp-mcp-vault-mcp-svc 8081:80验证连接
- 更新设置后重新启动VS代码
- 打开GitHub Copilot聊天
- 尝试提出使用Terraform或Vault功能的问题
- MCP服务器工具应可供Copilot使用
存储库结构
.
├── charts/
│ ├── hashicorp-mcp/ # Parent chart with unified ingress
│ │ ├── Chart.yaml
│ │ ├── Chart.lock
│ │ ├── values.yaml
│ │ ├── charts/ # Packaged subchart dependencies
│ │ ├── templates/
│ │ │ ├── NOTES.txt
│ │ │ ├── _helpers.tpl
│ │ │ ├── certificate.yaml
│ │ │ ├── httproute.yaml
│ │ │ └── ingress.yaml
│ │ └── README.md
│ ├── terraform-mcp/ # Terraform MCP standalone chart
│ │ ├── Chart.yaml
│ │ ├── values.yaml
│ │ ├── templates/
│ │ │ ├── NOTES.txt
│ │ │ ├── _helpers.tpl
│ │ │ ├── certificate.yaml
│ │ │ ├── deployment.yaml
│ │ │ ├── httproute.yaml
│ │ │ ├── ingress.yaml
│ │ │ ├── pdb.yaml
│ │ │ ├── secret.yaml
│ │ │ ├── service.yaml
│ │ │ └── tests/
│ │ │ └── test-connection.yaml
│ │ └── README.md
│ └── vault-mcp/ # Vault MCP standalone chart
│ ├── Chart.yaml
│ ├── values.yaml
│ ├── templates/
│ │ ├── NOTES.txt
│ │ ├── _helpers.tpl
│ │ ├── certificate.yaml
│ │ ├── deployment.yaml
│ │ ├── httproute.yaml
│ │ ├── ingress.yaml
│ │ ├── pdb.yaml
│ │ ├── secret.yaml
│ │ ├── service.yaml
│ │ └── tests/
│ │ └── test-connection.yaml
│ └── README.md
├── VERSIONING.md
├── LICENSE
└── README.md支持
对于问题和疑问:
- Terraform MCP服务器
- 保险库MCP服务器
- 在此存储库中创建问题
许可证
看 许可证 文件。
