Some checks failed
CI/CD / lint (pull_request) Successful in 1m14s
CI/CD / test (pull_request) Successful in 1m28s
CI/CD / typecheck (pull_request) Successful in 2m53s
CI/CD / smoke (pull_request) Failing after 2m5s
CI/CD / build (pull_request) Successful in 4m43s
CI/CD / publish (pull_request) Has been skipped
Stalwart's session advertises publicUrl-absolute endpoints; over the ClusterIP those hairpin through Envoy and 403. Verified in-cluster: apiUrl came back as https://smtp.ad.itaz.eu/jmap/. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
46 lines
1.9 KiB
YAML
46 lines
1.9 KiB
YAML
name: jmap
|
|
version: "1.0.0"
|
|
description: JMAP email (Stalwart) — search/read/organize + drafts; send and delete gated off by env
|
|
dockerImage: "mysources.co.uk/michal/jmap-mcp:0.6.5-drafts3"
|
|
transport: STDIO
|
|
repositoryUrl: https://mysources.co.uk/michal/jmap-mcp
|
|
# No command: the image's entrypoint IS the MCP server (deno run), mcpd
|
|
# attaches to PID 1 stdin/stdout. Fork of wyattjoh/jmap-mcp adding
|
|
# create_draft/create_draft_reply, JMAP_DISABLE_* gating, and Basic auth
|
|
# (jmap-jam upstream only speaks Bearer).
|
|
healthCheck:
|
|
# A real Mailbox/get: a pass proves session URL, auth, and account
|
|
# resolution, not just process liveness.
|
|
tool: get_mailboxes
|
|
arguments: {}
|
|
intervalSeconds: 60
|
|
timeoutSeconds: 10
|
|
env:
|
|
- name: JMAP_SESSION_URL
|
|
description: JMAP session URL (e.g. http://stalwart.stalwart.svc.cluster.local:8080/.well-known/jmap)
|
|
required: true
|
|
- name: JMAP_BEARER_TOKEN
|
|
description: Bearer token. Provide either this OR JMAP_USERNAME + JMAP_PASSWORD.
|
|
required: false
|
|
- name: JMAP_USERNAME
|
|
description: Username for HTTP Basic auth (e.g. with a Stalwart app password)
|
|
required: false
|
|
- name: JMAP_PASSWORD
|
|
description: Password/app password for HTTP Basic auth
|
|
required: false
|
|
- name: JMAP_ACCOUNT_ID
|
|
description: Account ID (auto-detected when empty)
|
|
required: false
|
|
- name: JMAP_DISABLE_SUBMISSION
|
|
description: "true = do not register send_email/reply_to_email (drafts only)"
|
|
required: false
|
|
defaultValue: "true"
|
|
- name: JMAP_DISABLE_DELETE
|
|
description: "true = do not register delete_emails (move to Trash still works)"
|
|
required: false
|
|
defaultValue: "true"
|
|
- name: JMAP_REBASE_SESSION_URLS
|
|
description: "true = rewrite the session's apiUrl/downloadUrl/uploadUrl/eventSourceUrl onto the session URL's origin. Required over a ClusterIP: Stalwart advertises its publicUrl and the hairpinned call 403s at Envoy."
|
|
required: false
|
|
defaultValue: "true"
|