Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ repos:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
exclude: ^helm/templates/
- id: check-added-large-files
- id: check-toml
- id: debug-statements
Expand Down
19 changes: 19 additions & 0 deletions helm/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: v2
name: mcp-atlassian
description: A Helm chart for deploying MCP Atlassian server - Model Context Protocol server for Jira and Confluence
type: application
version: 1.0.0
appVersion: "latest"
keywords:
- mcp
- atlassian
- jira
- confluence
- ai
- llm
home: https://github.com/sooperset/mcp-atlassian
sources:
- https://github.com/sooperset/mcp-atlassian
maintainers:
- name: Your Name
email: [email protected]
83 changes: 83 additions & 0 deletions helm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# MCP Atlassian Helm Chart

This Helm chart deploys the [MCP Atlassian](https://github.com/sooperset/mcp-atlassian) server to Kubernetes, providing a Model Context Protocol (MCP) server for Jira and Confluence integration.

## Prerequisites

- Kubernetes 1.19+
- Helm 3.0+
- Atlassian Cloud or Server/Data Center instance
- API tokens or OAuth credentials

## Installation

### Quick Start (Cloud with API Tokens)

```bash
# Create values file
cat > my-values.yaml <<YAML
confluence:
url: "https://your-company.atlassian.net/wiki"
username: "[email protected]"
apiToken: "your_confluence_api_token"

jira:
url: "https://your-company.atlassian.net"
username: "[email protected]"
apiToken: "your_jira_api_token"
YAML

# Install the chart
helm install mcp-atlassian ./mcp-atlassian -f my-values.yaml
```

### Validate the chart

```bash
helm lint mcp-atlassian/
```

### Test installation

```bash
helm install mcp-atlassian ./mcp-atlassian \
--set confluence.url="https://your-company.atlassian.net/wiki" \
--set confluence.username="[email protected]" \
--set confluence.apiToken="token" \
--set jira.url="https://your-company.atlassian.net" \
--set jira.username="[email protected]" \
--set jira.apiToken="token" \
--dry-run --debug
```

## Configuration

See the `values.yaml` file for all configuration options.

### Key Configuration Options

- **authMode**: `api-token`, `personal-token`, `oauth`, or `byot`
- **transport**: `stdio`, `sse`, or `streamable-http`
- **confluence/jira.enabled**: Enable/disable Confluence or Jira integration
- **config.readOnlyMode**: Disable all write operations
- **persistence.enabled**: Enable OAuth token persistence

## Upgrading

```bash
helm upgrade mcp-atlassian ./mcp-atlassian -f my-values.yaml
```

## Uninstalling

```bash
helm uninstall mcp-atlassian
```

## Support

For issues with the MCP Atlassian server, see https://github.com/sooperset/mcp-atlassian

## License

MIT License
60 changes: 60 additions & 0 deletions helm/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "mcp-atlassian.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Create a default fully qualified app name.
*/}}
{{- define "mcp-atlassian.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "mcp-atlassian.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}

{{/*
Common labels
*/}}
{{- define "mcp-atlassian.labels" -}}
helm.sh/chart: {{ include "mcp-atlassian.chart" . }}
{{ include "mcp-atlassian.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}

{{/*
Selector labels
*/}}
{{- define "mcp-atlassian.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mcp-atlassian.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

{{/*
Create the name of the service account to use
*/}}
{{- define "mcp-atlassian.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "mcp-atlassian.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}
25 changes: 25 additions & 0 deletions helm/templates/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "mcp-atlassian.fullname" . }}
labels:
{{- include "mcp-atlassian.labels" . | nindent 4 }}
data:
{{- if .Values.confluence.enabled }}
confluence-url: {{ .Values.confluence.url | quote }}
{{- if .Values.confluence.spacesFilter }}
confluence-spaces-filter: {{ .Values.confluence.spacesFilter | quote }}
{{- end }}
{{- end }}

{{- if .Values.jira.enabled }}
jira-url: {{ .Values.jira.url | quote }}
{{- if .Values.jira.projectsFilter }}
jira-projects-filter: {{ .Values.jira.projectsFilter | quote }}
{{- end }}
{{- end }}

{{- if eq .Values.authMode "oauth" }}
oauth-redirect-uri: {{ .Values.oauth.redirectUri | quote }}
oauth-scope: {{ .Values.oauth.scope | quote }}
{{- end }}
Loading
Loading