2026-09-30 01:35:43 +01:00
name : jmap
version : "1.0.0"
description : JMAP email (Stalwart) — search/read/organize + drafts; send and delete gated off by env
2026-09-30 01:42:05 +01:00
dockerImage : "mysources.co.uk/michal/jmap-mcp:0.6.5-drafts3"
2026-09-30 01:35:43 +01:00
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"
2026-09-30 01:42:05 +01:00
- 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"