x=hub

your toolset

    build deployment
    sign in

    mailoo

    mcpkey · package official
    io.github.Bitfloo/mailoo · v0.2.1
    deploy just this

    Mailoo — email MCP server for IMAP, SMTP, and ManageSieve. Multi-account, per-folder profiles.

    run it

    on your own machines, one way per deploy method
    generated from the record, not tested yet
    #!/usr/bin/env bash
    # mailoo (io.github.Bitfloo/mailoo), recipe baremetal (generated).
    # Generated by Hub for toolset "my-agent"; started by mcp-my-agent-mailoo.service.
    set -euo pipefail
    export HOST=127.0.0.1 PORT=8101
    exec npx -y supergateway@4 --stdio 'npx -y @bitfloo/[email protected]' --outputTransport streamableHttp --stateful --host 127.0.0.1 --port 8101 --streamableHttpPath /mcp --healthEndpoint /healthz
    
    [Unit]
    Description=MCP server mailoo (toolset my-agent), generated by Hub
    After=network-online.target
    Wants=network-online.target
    
    [Service]
    Type=simple
    User=mcp
    Group=mcp
    EnvironmentFile=/etc/mcp/my-agent.env
    Environment=HOME=/var/lib/mcp/mailoo
    WorkingDirectory=/var/lib/mcp/mailoo
    ExecStart=/opt/mcp/my-agent/bin/mailoo.sh
    Restart=on-failure
    RestartSec=5
    NoNewPrivileges=true
    ProtectSystem=strict
    ProtectHome=true
    PrivateTmp=true
    ReadWritePaths=/var/lib/mcp/mailoo
    
    [Install]
    WantedBy=multi-user.target
    
    generated from the record, not tested yet
    docker run --rm -p 127.0.0.1:8101:8000 -e MCP_EMAIL_ADDRESS -e MCP_EMAIL_PASSWORD -e MCP_EMAIL_IMAP_HOST -e MCP_EMAIL_SMTP_HOST -e MCP_EMAIL_ACCOUNT_NAME -e MCP_EMAIL_FULL_NAME -e MCP_EMAIL_USERNAME -e MCP_EMAIL_IMAP_PORT -e MCP_EMAIL_IMAP_TLS -e MCP_EMAIL_IMAP_STARTTLS -e MCP_EMAIL_IMAP_VERIFY_SSL -e MCP_EMAIL_IMAP_DISABLE_IMAP4REV2 -e MCP_EMAIL_SIEVE_HOST -e MCP_EMAIL_SIEVE_PORT -e MCP_EMAIL_SMTP_PORT -e MCP_EMAIL_SMTP_TLS -e MCP_EMAIL_SMTP_STARTTLS -e MCP_EMAIL_SMTP_VERIFY_SSL -e MCP_EMAIL_SMTP_POOL_ENABLED -e MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS -e MCP_EMAIL_SMTP_POOL_MAX_MESSAGES -e MCP_EMAIL_OAUTH2_PROVIDER -e MCP_EMAIL_OAUTH2_CLIENT_ID -e MCP_EMAIL_OAUTH2_CLIENT_SECRET -e MCP_EMAIL_OAUTH2_REFRESH_TOKEN -e MCP_EMAIL_RATE_LIMIT -e MCP_EMAIL_READ_ONLY -e MCP_EMAIL_SAVE_TO_SENT -e MCP_EMAIL_WATCHER_ENABLED -e MCP_EMAIL_WATCHER_FOLDERS -e MCP_EMAIL_WATCHER_IDLE_TIMEOUT -e MCP_EMAIL_HOOK_ON_NEW_EMAIL -e MCP_EMAIL_HOOK_PRESET -e MCP_EMAIL_HOOK_AUTO_LABEL -e MCP_EMAIL_HOOK_AUTO_FLAG -e MCP_EMAIL_HOOK_BATCH_DELAY -e MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS -e MCP_EMAIL_ALERT_DESKTOP -e MCP_EMAIL_ALERT_SOUND -e MCP_EMAIL_ALERT_URGENCY_THRESHOLD -e MCP_EMAIL_ALERT_WEBHOOK_URL -e MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE -e MCP_EMAIL_HOOK_AUTO_CALENDAR -e MCP_EMAIL_HOOK_CALENDAR_NAME -e MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES -e MCP_EMAIL_HOOK_CALENDAR_CONFIRM -e MCP_EMAIL_SYSTEM_ONE_ENABLED -e MCP_EMAIL_HTTP_HOST -e MCP_EMAIL_HTTP_TOKEN -e MCP_EMAIL_HTTP_ALLOWED_HOSTS node:22-alpine sh -c 'npx -y supergateway@4 --stdio '"'"'npx -y @bitfloo/[email protected]'"'"' --outputTransport streamableHttp --stateful --host 0.0.0.0 --port 8000 --streamableHttpPath /mcp --healthEndpoint /healthz'
    
    generated from the record, not tested yet
    # Generated by Hub for toolset "my-agent" (2026-10-17T22:03:07+00:00).
    # Each package server runs behind a stdio->HTTP bridge and listens on localhost only.
    #   cp .env.example .env    # fill the ${VAR}s
    #   docker compose up -d && bash smoke.sh
    # Remote servers are not here: clients reach them directly (see clients/).
    name: mcp-my-agent
    services:
      mailoo:
        image: node:22-alpine
        command:
        - sh
        - -c
        - npx -y supergateway@4 --stdio 'npx -y @bitfloo/[email protected]' --outputTransport streamableHttp --stateful
          --host 0.0.0.0 --port 8000 --streamableHttpPath /mcp --healthEndpoint /healthz
        ports:
        - 127.0.0.1:8101:8000
        volumes:
        - npm-cache:/root/.npm
        healthcheck:
          test:
          - CMD-SHELL
          - wget -qO- http://127.0.0.1:8000/healthz || exit 1
          interval: 30s
          timeout: 5s
          retries: 5
          start_period: 2m
        restart: unless-stopped
        environment:
          MCP_EMAIL_ADDRESS: ${MCP_EMAIL_ADDRESS}
          MCP_EMAIL_PASSWORD: ${MCP_EMAIL_PASSWORD}
          MCP_EMAIL_IMAP_HOST: ${MCP_EMAIL_IMAP_HOST}
          MCP_EMAIL_SMTP_HOST: ${MCP_EMAIL_SMTP_HOST}
          MCP_EMAIL_ACCOUNT_NAME: ${MCP_EMAIL_ACCOUNT_NAME}
          MCP_EMAIL_FULL_NAME: ${MCP_EMAIL_FULL_NAME}
          MCP_EMAIL_USERNAME: ${MCP_EMAIL_USERNAME}
          MCP_EMAIL_IMAP_PORT: ${MCP_EMAIL_IMAP_PORT}
          MCP_EMAIL_IMAP_TLS: ${MCP_EMAIL_IMAP_TLS}
          MCP_EMAIL_IMAP_STARTTLS: ${MCP_EMAIL_IMAP_STARTTLS}
          MCP_EMAIL_IMAP_VERIFY_SSL: ${MCP_EMAIL_IMAP_VERIFY_SSL}
          MCP_EMAIL_IMAP_DISABLE_IMAP4REV2: ${MCP_EMAIL_IMAP_DISABLE_IMAP4REV2}
          MCP_EMAIL_SIEVE_HOST: ${MCP_EMAIL_SIEVE_HOST}
          MCP_EMAIL_SIEVE_PORT: ${MCP_EMAIL_SIEVE_PORT}
          MCP_EMAIL_SMTP_PORT: ${MCP_EMAIL_SMTP_PORT}
          MCP_EMAIL_SMTP_TLS: ${MCP_EMAIL_SMTP_TLS}
          MCP_EMAIL_SMTP_STARTTLS: ${MCP_EMAIL_SMTP_STARTTLS}
          MCP_EMAIL_SMTP_VERIFY_SSL: ${MCP_EMAIL_SMTP_VERIFY_SSL}
          MCP_EMAIL_SMTP_POOL_ENABLED: ${MCP_EMAIL_SMTP_POOL_ENABLED}
          MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS: ${MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS}
          MCP_EMAIL_SMTP_POOL_MAX_MESSAGES: ${MCP_EMAIL_SMTP_POOL_MAX_MESSAGES}
          MCP_EMAIL_OAUTH2_PROVIDER: ${MCP_EMAIL_OAUTH2_PROVIDER}
          MCP_EMAIL_OAUTH2_CLIENT_ID: ${MCP_EMAIL_OAUTH2_CLIENT_ID}
          MCP_EMAIL_OAUTH2_CLIENT_SECRET: ${MCP_EMAIL_OAUTH2_CLIENT_SECRET}
          MCP_EMAIL_OAUTH2_REFRESH_TOKEN: ${MCP_EMAIL_OAUTH2_REFRESH_TOKEN}
          MCP_EMAIL_RATE_LIMIT: ${MCP_EMAIL_RATE_LIMIT}
          MCP_EMAIL_READ_ONLY: ${MCP_EMAIL_READ_ONLY}
          MCP_EMAIL_SAVE_TO_SENT: ${MCP_EMAIL_SAVE_TO_SENT}
          MCP_EMAIL_WATCHER_ENABLED: ${MCP_EMAIL_WATCHER_ENABLED}
          MCP_EMAIL_WATCHER_FOLDERS: ${MCP_EMAIL_WATCHER_FOLDERS}
          MCP_EMAIL_WATCHER_IDLE_TIMEOUT: ${MCP_EMAIL_WATCHER_IDLE_TIMEOUT}
          MCP_EMAIL_HOOK_ON_NEW_EMAIL: ${MCP_EMAIL_HOOK_ON_NEW_EMAIL}
          MCP_EMAIL_HOOK_PRESET: ${MCP_EMAIL_HOOK_PRESET}
          MCP_EMAIL_HOOK_AUTO_LABEL: ${MCP_EMAIL_HOOK_AUTO_LABEL}
          MCP_EMAIL_HOOK_AUTO_FLAG: ${MCP_EMAIL_HOOK_AUTO_FLAG}
          MCP_EMAIL_HOOK_BATCH_DELAY: ${MCP_EMAIL_HOOK_BATCH_DELAY}
          MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS: ${MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS}
          MCP_EMAIL_ALERT_DESKTOP: ${MCP_EMAIL_ALERT_DESKTOP}
          MCP_EMAIL_ALERT_SOUND: ${MCP_EMAIL_ALERT_SOUND}
          MCP_EMAIL_ALERT_URGENCY_THRESHOLD: ${MCP_EMAIL_ALERT_URGENCY_THRESHOLD}
          MCP_EMAIL_ALERT_WEBHOOK_URL: ${MCP_EMAIL_ALERT_WEBHOOK_URL}
          MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE: ${MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE}
          MCP_EMAIL_HOOK_AUTO_CALENDAR: ${MCP_EMAIL_HOOK_AUTO_CALENDAR}
          MCP_EMAIL_HOOK_CALENDAR_NAME: ${MCP_EMAIL_HOOK_CALENDAR_NAME}
          MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES: ${MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES}
          MCP_EMAIL_HOOK_CALENDAR_CONFIRM: ${MCP_EMAIL_HOOK_CALENDAR_CONFIRM}
          MCP_EMAIL_SYSTEM_ONE_ENABLED: ${MCP_EMAIL_SYSTEM_ONE_ENABLED}
          MCP_EMAIL_HTTP_HOST: ${MCP_EMAIL_HTTP_HOST}
          MCP_EMAIL_HTTP_TOKEN: ${MCP_EMAIL_HTTP_TOKEN}
          MCP_EMAIL_HTTP_ALLOWED_HOSTS: ${MCP_EMAIL_HTTP_ALLOWED_HOSTS}
    volumes:
      npm-cache: {}
      uv-cache: {}
    
    generated from the record, not tested yet
    # Generated by Hub for toolset "my-agent" (2026-10-17T22:03:07+00:00).
    #   kubectl create namespace mcp
    #   kubectl -n mcp create secret generic mcp-credentials --from-env-file=.env
    #   kubectl apply -f kubernetes.yaml
    # Services are cluster-internal: <name>.mcp.svc.cluster.local:8000/mcp. Put an ingress
    # with auth in front before exposing any of them.
    apiVersion: v1
    kind: Namespace
    metadata:
      name: mcp
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: mailoo
      namespace: mcp
      labels: &id001
        app: mailoo
    spec:
      replicas: 1
      selector:
        matchLabels: *id001
      template:
        metadata:
          labels: *id001
        spec:
          containers:
          - name: mailoo
            image: node:22-alpine
            ports:
            - containerPort: 8000
              name: http
            env:
            - name: MCP_EMAIL_ADDRESS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ADDRESS
            - name: MCP_EMAIL_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_PASSWORD
            - name: MCP_EMAIL_IMAP_HOST
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_HOST
            - name: MCP_EMAIL_SMTP_HOST
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_HOST
            - name: MCP_EMAIL_ACCOUNT_NAME
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ACCOUNT_NAME
            - name: MCP_EMAIL_FULL_NAME
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_FULL_NAME
            - name: MCP_EMAIL_USERNAME
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_USERNAME
            - name: MCP_EMAIL_IMAP_PORT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_PORT
            - name: MCP_EMAIL_IMAP_TLS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_TLS
            - name: MCP_EMAIL_IMAP_STARTTLS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_STARTTLS
            - name: MCP_EMAIL_IMAP_VERIFY_SSL
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_VERIFY_SSL
            - name: MCP_EMAIL_IMAP_DISABLE_IMAP4REV2
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_IMAP_DISABLE_IMAP4REV2
            - name: MCP_EMAIL_SIEVE_HOST
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SIEVE_HOST
            - name: MCP_EMAIL_SIEVE_PORT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SIEVE_PORT
            - name: MCP_EMAIL_SMTP_PORT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_PORT
            - name: MCP_EMAIL_SMTP_TLS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_TLS
            - name: MCP_EMAIL_SMTP_STARTTLS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_STARTTLS
            - name: MCP_EMAIL_SMTP_VERIFY_SSL
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_VERIFY_SSL
            - name: MCP_EMAIL_SMTP_POOL_ENABLED
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_POOL_ENABLED
            - name: MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS
            - name: MCP_EMAIL_SMTP_POOL_MAX_MESSAGES
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SMTP_POOL_MAX_MESSAGES
            - name: MCP_EMAIL_OAUTH2_PROVIDER
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_OAUTH2_PROVIDER
            - name: MCP_EMAIL_OAUTH2_CLIENT_ID
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_OAUTH2_CLIENT_ID
            - name: MCP_EMAIL_OAUTH2_CLIENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_OAUTH2_CLIENT_SECRET
            - name: MCP_EMAIL_OAUTH2_REFRESH_TOKEN
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_OAUTH2_REFRESH_TOKEN
            - name: MCP_EMAIL_RATE_LIMIT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_RATE_LIMIT
            - name: MCP_EMAIL_READ_ONLY
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_READ_ONLY
            - name: MCP_EMAIL_SAVE_TO_SENT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SAVE_TO_SENT
            - name: MCP_EMAIL_WATCHER_ENABLED
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_WATCHER_ENABLED
            - name: MCP_EMAIL_WATCHER_FOLDERS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_WATCHER_FOLDERS
            - name: MCP_EMAIL_WATCHER_IDLE_TIMEOUT
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_WATCHER_IDLE_TIMEOUT
            - name: MCP_EMAIL_HOOK_ON_NEW_EMAIL
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_ON_NEW_EMAIL
            - name: MCP_EMAIL_HOOK_PRESET
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_PRESET
            - name: MCP_EMAIL_HOOK_AUTO_LABEL
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_AUTO_LABEL
            - name: MCP_EMAIL_HOOK_AUTO_FLAG
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_AUTO_FLAG
            - name: MCP_EMAIL_HOOK_BATCH_DELAY
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_BATCH_DELAY
            - name: MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS
            - name: MCP_EMAIL_ALERT_DESKTOP
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ALERT_DESKTOP
            - name: MCP_EMAIL_ALERT_SOUND
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ALERT_SOUND
            - name: MCP_EMAIL_ALERT_URGENCY_THRESHOLD
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ALERT_URGENCY_THRESHOLD
            - name: MCP_EMAIL_ALERT_WEBHOOK_URL
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ALERT_WEBHOOK_URL
            - name: MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE
            - name: MCP_EMAIL_HOOK_AUTO_CALENDAR
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_AUTO_CALENDAR
            - name: MCP_EMAIL_HOOK_CALENDAR_NAME
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_CALENDAR_NAME
            - name: MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES
            - name: MCP_EMAIL_HOOK_CALENDAR_CONFIRM
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HOOK_CALENDAR_CONFIRM
            - name: MCP_EMAIL_SYSTEM_ONE_ENABLED
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_SYSTEM_ONE_ENABLED
            - name: MCP_EMAIL_HTTP_HOST
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HTTP_HOST
            - name: MCP_EMAIL_HTTP_TOKEN
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HTTP_TOKEN
            - name: MCP_EMAIL_HTTP_ALLOWED_HOSTS
              valueFrom:
                secretKeyRef:
                  name: mcp-credentials
                  key: MCP_EMAIL_HTTP_ALLOWED_HOSTS
            command:
            - sh
            - -c
            - npx -y supergateway@4 --stdio 'npx -y @bitfloo/[email protected]' --outputTransport streamableHttp
              --stateful --host 0.0.0.0 --port 8000 --streamableHttpPath /mcp --healthEndpoint /healthz
            readinessProbe:
              httpGet:
                path: /healthz
                port: http
              initialDelaySeconds: 10
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: mailoo
      namespace: mcp
    spec:
      selector:
        app: mailoo
      ports:
      - port: 8000
        targetPort: http
        name: http
    
    generated from the record, not tested yet
    # Generated by Hub for toolset "my-agent" (2026-10-17T22:03:07+00:00).
    # Credentials come from the Secret 'mcp-credentials' (kubectl create secret generic ... --from-env-file=.env).
    # Each server under `servers` is one Deployment + Service; the keys after it configure
    # upstream charts a worker verified.
    servers:
      mailoo:
        enabled: true
        replicas: 1
        port: 8000
        path: /mcp
        container:
          name: mailoo
          image: node:22-alpine
          ports:
          - containerPort: 8000
            name: http
          env:
          - name: MCP_EMAIL_ADDRESS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ADDRESS
          - name: MCP_EMAIL_PASSWORD
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_PASSWORD
          - name: MCP_EMAIL_IMAP_HOST
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_HOST
          - name: MCP_EMAIL_SMTP_HOST
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_HOST
          - name: MCP_EMAIL_ACCOUNT_NAME
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ACCOUNT_NAME
          - name: MCP_EMAIL_FULL_NAME
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_FULL_NAME
          - name: MCP_EMAIL_USERNAME
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_USERNAME
          - name: MCP_EMAIL_IMAP_PORT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_PORT
          - name: MCP_EMAIL_IMAP_TLS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_TLS
          - name: MCP_EMAIL_IMAP_STARTTLS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_STARTTLS
          - name: MCP_EMAIL_IMAP_VERIFY_SSL
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_VERIFY_SSL
          - name: MCP_EMAIL_IMAP_DISABLE_IMAP4REV2
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_IMAP_DISABLE_IMAP4REV2
          - name: MCP_EMAIL_SIEVE_HOST
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SIEVE_HOST
          - name: MCP_EMAIL_SIEVE_PORT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SIEVE_PORT
          - name: MCP_EMAIL_SMTP_PORT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_PORT
          - name: MCP_EMAIL_SMTP_TLS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_TLS
          - name: MCP_EMAIL_SMTP_STARTTLS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_STARTTLS
          - name: MCP_EMAIL_SMTP_VERIFY_SSL
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_VERIFY_SSL
          - name: MCP_EMAIL_SMTP_POOL_ENABLED
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_POOL_ENABLED
          - name: MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS
          - name: MCP_EMAIL_SMTP_POOL_MAX_MESSAGES
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SMTP_POOL_MAX_MESSAGES
          - name: MCP_EMAIL_OAUTH2_PROVIDER
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_OAUTH2_PROVIDER
          - name: MCP_EMAIL_OAUTH2_CLIENT_ID
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_OAUTH2_CLIENT_ID
          - name: MCP_EMAIL_OAUTH2_CLIENT_SECRET
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_OAUTH2_CLIENT_SECRET
          - name: MCP_EMAIL_OAUTH2_REFRESH_TOKEN
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_OAUTH2_REFRESH_TOKEN
          - name: MCP_EMAIL_RATE_LIMIT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_RATE_LIMIT
          - name: MCP_EMAIL_READ_ONLY
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_READ_ONLY
          - name: MCP_EMAIL_SAVE_TO_SENT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SAVE_TO_SENT
          - name: MCP_EMAIL_WATCHER_ENABLED
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_WATCHER_ENABLED
          - name: MCP_EMAIL_WATCHER_FOLDERS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_WATCHER_FOLDERS
          - name: MCP_EMAIL_WATCHER_IDLE_TIMEOUT
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_WATCHER_IDLE_TIMEOUT
          - name: MCP_EMAIL_HOOK_ON_NEW_EMAIL
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_ON_NEW_EMAIL
          - name: MCP_EMAIL_HOOK_PRESET
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_PRESET
          - name: MCP_EMAIL_HOOK_AUTO_LABEL
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_AUTO_LABEL
          - name: MCP_EMAIL_HOOK_AUTO_FLAG
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_AUTO_FLAG
          - name: MCP_EMAIL_HOOK_BATCH_DELAY
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_BATCH_DELAY
          - name: MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS
          - name: MCP_EMAIL_ALERT_DESKTOP
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ALERT_DESKTOP
          - name: MCP_EMAIL_ALERT_SOUND
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ALERT_SOUND
          - name: MCP_EMAIL_ALERT_URGENCY_THRESHOLD
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ALERT_URGENCY_THRESHOLD
          - name: MCP_EMAIL_ALERT_WEBHOOK_URL
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ALERT_WEBHOOK_URL
          - name: MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE
          - name: MCP_EMAIL_HOOK_AUTO_CALENDAR
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_AUTO_CALENDAR
          - name: MCP_EMAIL_HOOK_CALENDAR_NAME
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_CALENDAR_NAME
          - name: MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES
          - name: MCP_EMAIL_HOOK_CALENDAR_CONFIRM
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HOOK_CALENDAR_CONFIRM
          - name: MCP_EMAIL_SYSTEM_ONE_ENABLED
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_SYSTEM_ONE_ENABLED
          - name: MCP_EMAIL_HTTP_HOST
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HTTP_HOST
          - name: MCP_EMAIL_HTTP_TOKEN
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HTTP_TOKEN
          - name: MCP_EMAIL_HTTP_ALLOWED_HOSTS
            valueFrom:
              secretKeyRef:
                name: mcp-credentials
                key: MCP_EMAIL_HTTP_ALLOWED_HOSTS
          command:
          - sh
          - -c
          - npx -y supergateway@4 --stdio 'npx -y @bitfloo/[email protected]' --outputTransport streamableHttp
            --stateful --host 0.0.0.0 --port 8000 --streamableHttpPath /mcp --healthEndpoint /healthz
          readinessProbe:
            httpGet:
              path: /healthz
              port: http
            initialDelaySeconds: 10
    
    # helm install my-agent helm/my-agent -n mcp
    

    in the cloud

    one click: the provider's deploy form opens filled in, in your own account
    koyeb

    The form opens with CHANGE_ME for each value you supply: MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_ACCOUNT_NAME, MCP_EMAIL_FULL_NAME, MCP_EMAIL_USERNAME, MCP_EMAIL_IMAP_PORT, MCP_EMAIL_IMAP_TLS, MCP_EMAIL_IMAP_STARTTLS, MCP_EMAIL_IMAP_VERIFY_SSL, MCP_EMAIL_IMAP_DISABLE_IMAP4REV2, MCP_EMAIL_SIEVE_HOST, MCP_EMAIL_SIEVE_PORT, MCP_EMAIL_SMTP_PORT, MCP_EMAIL_SMTP_TLS, MCP_EMAIL_SMTP_STARTTLS, MCP_EMAIL_SMTP_VERIFY_SSL, MCP_EMAIL_SMTP_POOL_ENABLED, MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS, MCP_EMAIL_SMTP_POOL_MAX_MESSAGES, MCP_EMAIL_OAUTH2_PROVIDER, MCP_EMAIL_OAUTH2_CLIENT_ID, MCP_EMAIL_OAUTH2_CLIENT_SECRET, MCP_EMAIL_OAUTH2_REFRESH_TOKEN, MCP_EMAIL_RATE_LIMIT, MCP_EMAIL_READ_ONLY, MCP_EMAIL_SAVE_TO_SENT, MCP_EMAIL_WATCHER_ENABLED, MCP_EMAIL_WATCHER_FOLDERS, MCP_EMAIL_WATCHER_IDLE_TIMEOUT, MCP_EMAIL_HOOK_ON_NEW_EMAIL, MCP_EMAIL_HOOK_PRESET, MCP_EMAIL_HOOK_AUTO_LABEL, MCP_EMAIL_HOOK_AUTO_FLAG, MCP_EMAIL_HOOK_BATCH_DELAY, MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS, MCP_EMAIL_ALERT_DESKTOP, MCP_EMAIL_ALERT_SOUND, MCP_EMAIL_ALERT_URGENCY_THRESHOLD, MCP_EMAIL_ALERT_WEBHOOK_URL, MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE, MCP_EMAIL_HOOK_AUTO_CALENDAR, MCP_EMAIL_HOOK_CALENDAR_NAME, MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES, MCP_EMAIL_HOOK_CALENDAR_CONFIRM, MCP_EMAIL_SYSTEM_ONE_ENABLED, MCP_EMAIL_HTTP_HOST, MCP_EMAIL_HTTP_TOKEN, MCP_EMAIL_HTTP_ALLOWED_HOSTS. Fill them in before you deploy.

    Clients connect to the service's https://…koyeb.app address plus /mcp.

    azure

    A Container Apps environment with one app per server, each with HTTPS ingress and one replica. The portal asks for each value you supply as a secure parameter; the deployment's outputs list the endpoints.

    connect to it

    copy what your client needs
    npx -y @bitfloo/[email protected]
    # env: MCP_EMAIL_ADDRESS, MCP_EMAIL_PASSWORD, MCP_EMAIL_IMAP_HOST, MCP_EMAIL_SMTP_HOST, MCP_EMAIL_ACCOUNT_NAME, MCP_EMAIL_FULL_NAME, MCP_EMAIL_USERNAME, MCP_EMAIL_IMAP_PORT, MCP_EMAIL_IMAP_TLS, MCP_EMAIL_IMAP_STARTTLS, MCP_EMAIL_IMAP_VERIFY_SSL, MCP_EMAIL_IMAP_DISABLE_IMAP4REV2, MCP_EMAIL_SIEVE_HOST, MCP_EMAIL_SIEVE_PORT, MCP_EMAIL_SMTP_PORT, MCP_EMAIL_SMTP_TLS, MCP_EMAIL_SMTP_STARTTLS, MCP_EMAIL_SMTP_VERIFY_SSL, MCP_EMAIL_SMTP_POOL_ENABLED, MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS, MCP_EMAIL_SMTP_POOL_MAX_MESSAGES, MCP_EMAIL_OAUTH2_PROVIDER, MCP_EMAIL_OAUTH2_CLIENT_ID, MCP_EMAIL_OAUTH2_CLIENT_SECRET, MCP_EMAIL_OAUTH2_REFRESH_TOKEN, MCP_EMAIL_RATE_LIMIT, MCP_EMAIL_READ_ONLY, MCP_EMAIL_SAVE_TO_SENT, MCP_EMAIL_WATCHER_ENABLED, MCP_EMAIL_WATCHER_FOLDERS, MCP_EMAIL_WATCHER_IDLE_TIMEOUT, MCP_EMAIL_HOOK_ON_NEW_EMAIL, MCP_EMAIL_HOOK_PRESET, MCP_EMAIL_HOOK_AUTO_LABEL, MCP_EMAIL_HOOK_AUTO_FLAG, MCP_EMAIL_HOOK_BATCH_DELAY, MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS, MCP_EMAIL_ALERT_DESKTOP, MCP_EMAIL_ALERT_SOUND, MCP_EMAIL_ALERT_URGENCY_THRESHOLD, MCP_EMAIL_ALERT_WEBHOOK_URL, MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE, MCP_EMAIL_HOOK_AUTO_CALENDAR, MCP_EMAIL_HOOK_CALENDAR_NAME, MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES, MCP_EMAIL_HOOK_CALENDAR_CONFIRM, MCP_EMAIL_SYSTEM_ONE_ENABLED, MCP_EMAIL_HTTP_HOST, MCP_EMAIL_HTTP_TOKEN, MCP_EMAIL_HTTP_ALLOWED_HOSTS
    {
      "mcpServers": {
        "mailoo": {
          "command": "npx",
          "args": [
            "-y",
            "@bitfloo/[email protected]"
          ],
          "env": {
            "MCP_EMAIL_ADDRESS": "${MCP_EMAIL_ADDRESS}",
            "MCP_EMAIL_PASSWORD": "${MCP_EMAIL_PASSWORD}",
            "MCP_EMAIL_IMAP_HOST": "${MCP_EMAIL_IMAP_HOST}",
            "MCP_EMAIL_SMTP_HOST": "${MCP_EMAIL_SMTP_HOST}",
            "MCP_EMAIL_ACCOUNT_NAME": "${MCP_EMAIL_ACCOUNT_NAME}",
            "MCP_EMAIL_FULL_NAME": "${MCP_EMAIL_FULL_NAME}",
            "MCP_EMAIL_USERNAME": "${MCP_EMAIL_USERNAME}",
            "MCP_EMAIL_IMAP_PORT": "${MCP_EMAIL_IMAP_PORT}",
            "MCP_EMAIL_IMAP_TLS": "${MCP_EMAIL_IMAP_TLS}",
            "MCP_EMAIL_IMAP_STARTTLS": "${MCP_EMAIL_IMAP_STARTTLS}",
            "MCP_EMAIL_IMAP_VERIFY_SSL": "${MCP_EMAIL_IMAP_VERIFY_SSL}",
            "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "${MCP_EMAIL_IMAP_DISABLE_IMAP4REV2}",
            "MCP_EMAIL_SIEVE_HOST": "${MCP_EMAIL_SIEVE_HOST}",
            "MCP_EMAIL_SIEVE_PORT": "${MCP_EMAIL_SIEVE_PORT}",
            "MCP_EMAIL_SMTP_PORT": "${MCP_EMAIL_SMTP_PORT}",
            "MCP_EMAIL_SMTP_TLS": "${MCP_EMAIL_SMTP_TLS}",
            "MCP_EMAIL_SMTP_STARTTLS": "${MCP_EMAIL_SMTP_STARTTLS}",
            "MCP_EMAIL_SMTP_VERIFY_SSL": "${MCP_EMAIL_SMTP_VERIFY_SSL}",
            "MCP_EMAIL_SMTP_POOL_ENABLED": "${MCP_EMAIL_SMTP_POOL_ENABLED}",
            "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "${MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS}",
            "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "${MCP_EMAIL_SMTP_POOL_MAX_MESSAGES}",
            "MCP_EMAIL_OAUTH2_PROVIDER": "${MCP_EMAIL_OAUTH2_PROVIDER}",
            "MCP_EMAIL_OAUTH2_CLIENT_ID": "${MCP_EMAIL_OAUTH2_CLIENT_ID}",
            "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "${MCP_EMAIL_OAUTH2_CLIENT_SECRET}",
            "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "${MCP_EMAIL_OAUTH2_REFRESH_TOKEN}",
            "MCP_EMAIL_RATE_LIMIT": "${MCP_EMAIL_RATE_LIMIT}",
            "MCP_EMAIL_READ_ONLY": "${MCP_EMAIL_READ_ONLY}",
            "MCP_EMAIL_SAVE_TO_SENT": "${MCP_EMAIL_SAVE_TO_SENT}",
            "MCP_EMAIL_WATCHER_ENABLED": "${MCP_EMAIL_WATCHER_ENABLED}",
            "MCP_EMAIL_WATCHER_FOLDERS": "${MCP_EMAIL_WATCHER_FOLDERS}",
            "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "${MCP_EMAIL_WATCHER_IDLE_TIMEOUT}",
            "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "${MCP_EMAIL_HOOK_ON_NEW_EMAIL}",
            "MCP_EMAIL_HOOK_PRESET": "${MCP_EMAIL_HOOK_PRESET}",
            "MCP_EMAIL_HOOK_AUTO_LABEL": "${MCP_EMAIL_HOOK_AUTO_LABEL}",
            "MCP_EMAIL_HOOK_AUTO_FLAG": "${MCP_EMAIL_HOOK_AUTO_FLAG}",
            "MCP_EMAIL_HOOK_BATCH_DELAY": "${MCP_EMAIL_HOOK_BATCH_DELAY}",
            "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "${MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS}",
            "MCP_EMAIL_ALERT_DESKTOP": "${MCP_EMAIL_ALERT_DESKTOP}",
            "MCP_EMAIL_ALERT_SOUND": "${MCP_EMAIL_ALERT_SOUND}",
            "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "${MCP_EMAIL_ALERT_URGENCY_THRESHOLD}",
            "MCP_EMAIL_ALERT_WEBHOOK_URL": "${MCP_EMAIL_ALERT_WEBHOOK_URL}",
            "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "${MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE}",
            "MCP_EMAIL_HOOK_AUTO_CALENDAR": "${MCP_EMAIL_HOOK_AUTO_CALENDAR}",
            "MCP_EMAIL_HOOK_CALENDAR_NAME": "${MCP_EMAIL_HOOK_CALENDAR_NAME}",
            "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "${MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES}",
            "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "${MCP_EMAIL_HOOK_CALENDAR_CONFIRM}",
            "MCP_EMAIL_SYSTEM_ONE_ENABLED": "${MCP_EMAIL_SYSTEM_ONE_ENABLED}",
            "MCP_EMAIL_HTTP_HOST": "${MCP_EMAIL_HTTP_HOST}",
            "MCP_EMAIL_HTTP_TOKEN": "${MCP_EMAIL_HTTP_TOKEN}",
            "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "${MCP_EMAIL_HTTP_ALLOWED_HOSTS}"
          }
        }
      }
    }
    #!/usr/bin/env bash
    # Registers every server with Claude Code (run once; `claude mcp list` to check).
    set -euo pipefail
    set -a; [ -f .env ] && source .env; set +a
    claude mcp add mailoo -e "MCP_EMAIL_ADDRESS=${MCP_EMAIL_ADDRESS}" -e "MCP_EMAIL_PASSWORD=${MCP_EMAIL_PASSWORD}" -e "MCP_EMAIL_IMAP_HOST=${MCP_EMAIL_IMAP_HOST}" -e "MCP_EMAIL_SMTP_HOST=${MCP_EMAIL_SMTP_HOST}" -e "MCP_EMAIL_ACCOUNT_NAME=${MCP_EMAIL_ACCOUNT_NAME}" -e "MCP_EMAIL_FULL_NAME=${MCP_EMAIL_FULL_NAME}" -e "MCP_EMAIL_USERNAME=${MCP_EMAIL_USERNAME}" -e "MCP_EMAIL_IMAP_PORT=${MCP_EMAIL_IMAP_PORT}" -e "MCP_EMAIL_IMAP_TLS=${MCP_EMAIL_IMAP_TLS}" -e "MCP_EMAIL_IMAP_STARTTLS=${MCP_EMAIL_IMAP_STARTTLS}" -e "MCP_EMAIL_IMAP_VERIFY_SSL=${MCP_EMAIL_IMAP_VERIFY_SSL}" -e "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2=${MCP_EMAIL_IMAP_DISABLE_IMAP4REV2}" -e "MCP_EMAIL_SIEVE_HOST=${MCP_EMAIL_SIEVE_HOST}" -e "MCP_EMAIL_SIEVE_PORT=${MCP_EMAIL_SIEVE_PORT}" -e "MCP_EMAIL_SMTP_PORT=${MCP_EMAIL_SMTP_PORT}" -e "MCP_EMAIL_SMTP_TLS=${MCP_EMAIL_SMTP_TLS}" -e "MCP_EMAIL_SMTP_STARTTLS=${MCP_EMAIL_SMTP_STARTTLS}" -e "MCP_EMAIL_SMTP_VERIFY_SSL=${MCP_EMAIL_SMTP_VERIFY_SSL}" -e "MCP_EMAIL_SMTP_POOL_ENABLED=${MCP_EMAIL_SMTP_POOL_ENABLED}" -e "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS=${MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS}" -e "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES=${MCP_EMAIL_SMTP_POOL_MAX_MESSAGES}" -e "MCP_EMAIL_OAUTH2_PROVIDER=${MCP_EMAIL_OAUTH2_PROVIDER}" -e "MCP_EMAIL_OAUTH2_CLIENT_ID=${MCP_EMAIL_OAUTH2_CLIENT_ID}" -e "MCP_EMAIL_OAUTH2_CLIENT_SECRET=${MCP_EMAIL_OAUTH2_CLIENT_SECRET}" -e "MCP_EMAIL_OAUTH2_REFRESH_TOKEN=${MCP_EMAIL_OAUTH2_REFRESH_TOKEN}" -e "MCP_EMAIL_RATE_LIMIT=${MCP_EMAIL_RATE_LIMIT}" -e "MCP_EMAIL_READ_ONLY=${MCP_EMAIL_READ_ONLY}" -e "MCP_EMAIL_SAVE_TO_SENT=${MCP_EMAIL_SAVE_TO_SENT}" -e "MCP_EMAIL_WATCHER_ENABLED=${MCP_EMAIL_WATCHER_ENABLED}" -e "MCP_EMAIL_WATCHER_FOLDERS=${MCP_EMAIL_WATCHER_FOLDERS}" -e "MCP_EMAIL_WATCHER_IDLE_TIMEOUT=${MCP_EMAIL_WATCHER_IDLE_TIMEOUT}" -e "MCP_EMAIL_HOOK_ON_NEW_EMAIL=${MCP_EMAIL_HOOK_ON_NEW_EMAIL}" -e "MCP_EMAIL_HOOK_PRESET=${MCP_EMAIL_HOOK_PRESET}" -e "MCP_EMAIL_HOOK_AUTO_LABEL=${MCP_EMAIL_HOOK_AUTO_LABEL}" -e "MCP_EMAIL_HOOK_AUTO_FLAG=${MCP_EMAIL_HOOK_AUTO_FLAG}" -e "MCP_EMAIL_HOOK_BATCH_DELAY=${MCP_EMAIL_HOOK_BATCH_DELAY}" -e "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS=${MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS}" -e "MCP_EMAIL_ALERT_DESKTOP=${MCP_EMAIL_ALERT_DESKTOP}" -e "MCP_EMAIL_ALERT_SOUND=${MCP_EMAIL_ALERT_SOUND}" -e "MCP_EMAIL_ALERT_URGENCY_THRESHOLD=${MCP_EMAIL_ALERT_URGENCY_THRESHOLD}" -e "MCP_EMAIL_ALERT_WEBHOOK_URL=${MCP_EMAIL_ALERT_WEBHOOK_URL}" -e "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE=${MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE}" -e "MCP_EMAIL_HOOK_AUTO_CALENDAR=${MCP_EMAIL_HOOK_AUTO_CALENDAR}" -e "MCP_EMAIL_HOOK_CALENDAR_NAME=${MCP_EMAIL_HOOK_CALENDAR_NAME}" -e "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES=${MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES}" -e "MCP_EMAIL_HOOK_CALENDAR_CONFIRM=${MCP_EMAIL_HOOK_CALENDAR_CONFIRM}" -e "MCP_EMAIL_SYSTEM_ONE_ENABLED=${MCP_EMAIL_SYSTEM_ONE_ENABLED}" -e "MCP_EMAIL_HTTP_HOST=${MCP_EMAIL_HTTP_HOST}" -e "MCP_EMAIL_HTTP_TOKEN=${MCP_EMAIL_HTTP_TOKEN}" -e "MCP_EMAIL_HTTP_ALLOWED_HOSTS=${MCP_EMAIL_HTTP_ALLOWED_HOSTS}" -- npx -y @bitfloo/[email protected]
    
    {
      "mcpServers": {
        "mailoo": {
          "command": "npx",
          "args": [
            "-y",
            "@bitfloo/[email protected]"
          ],
          "env": {
            "MCP_EMAIL_ADDRESS": "${MCP_EMAIL_ADDRESS}",
            "MCP_EMAIL_PASSWORD": "${MCP_EMAIL_PASSWORD}",
            "MCP_EMAIL_IMAP_HOST": "${MCP_EMAIL_IMAP_HOST}",
            "MCP_EMAIL_SMTP_HOST": "${MCP_EMAIL_SMTP_HOST}",
            "MCP_EMAIL_ACCOUNT_NAME": "${MCP_EMAIL_ACCOUNT_NAME}",
            "MCP_EMAIL_FULL_NAME": "${MCP_EMAIL_FULL_NAME}",
            "MCP_EMAIL_USERNAME": "${MCP_EMAIL_USERNAME}",
            "MCP_EMAIL_IMAP_PORT": "${MCP_EMAIL_IMAP_PORT}",
            "MCP_EMAIL_IMAP_TLS": "${MCP_EMAIL_IMAP_TLS}",
            "MCP_EMAIL_IMAP_STARTTLS": "${MCP_EMAIL_IMAP_STARTTLS}",
            "MCP_EMAIL_IMAP_VERIFY_SSL": "${MCP_EMAIL_IMAP_VERIFY_SSL}",
            "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "${MCP_EMAIL_IMAP_DISABLE_IMAP4REV2}",
            "MCP_EMAIL_SIEVE_HOST": "${MCP_EMAIL_SIEVE_HOST}",
            "MCP_EMAIL_SIEVE_PORT": "${MCP_EMAIL_SIEVE_PORT}",
            "MCP_EMAIL_SMTP_PORT": "${MCP_EMAIL_SMTP_PORT}",
            "MCP_EMAIL_SMTP_TLS": "${MCP_EMAIL_SMTP_TLS}",
            "MCP_EMAIL_SMTP_STARTTLS": "${MCP_EMAIL_SMTP_STARTTLS}",
            "MCP_EMAIL_SMTP_VERIFY_SSL": "${MCP_EMAIL_SMTP_VERIFY_SSL}",
            "MCP_EMAIL_SMTP_POOL_ENABLED": "${MCP_EMAIL_SMTP_POOL_ENABLED}",
            "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "${MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS}",
            "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "${MCP_EMAIL_SMTP_POOL_MAX_MESSAGES}",
            "MCP_EMAIL_OAUTH2_PROVIDER": "${MCP_EMAIL_OAUTH2_PROVIDER}",
            "MCP_EMAIL_OAUTH2_CLIENT_ID": "${MCP_EMAIL_OAUTH2_CLIENT_ID}",
            "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "${MCP_EMAIL_OAUTH2_CLIENT_SECRET}",
            "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "${MCP_EMAIL_OAUTH2_REFRESH_TOKEN}",
            "MCP_EMAIL_RATE_LIMIT": "${MCP_EMAIL_RATE_LIMIT}",
            "MCP_EMAIL_READ_ONLY": "${MCP_EMAIL_READ_ONLY}",
            "MCP_EMAIL_SAVE_TO_SENT": "${MCP_EMAIL_SAVE_TO_SENT}",
            "MCP_EMAIL_WATCHER_ENABLED": "${MCP_EMAIL_WATCHER_ENABLED}",
            "MCP_EMAIL_WATCHER_FOLDERS": "${MCP_EMAIL_WATCHER_FOLDERS}",
            "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "${MCP_EMAIL_WATCHER_IDLE_TIMEOUT}",
            "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "${MCP_EMAIL_HOOK_ON_NEW_EMAIL}",
            "MCP_EMAIL_HOOK_PRESET": "${MCP_EMAIL_HOOK_PRESET}",
            "MCP_EMAIL_HOOK_AUTO_LABEL": "${MCP_EMAIL_HOOK_AUTO_LABEL}",
            "MCP_EMAIL_HOOK_AUTO_FLAG": "${MCP_EMAIL_HOOK_AUTO_FLAG}",
            "MCP_EMAIL_HOOK_BATCH_DELAY": "${MCP_EMAIL_HOOK_BATCH_DELAY}",
            "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "${MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS}",
            "MCP_EMAIL_ALERT_DESKTOP": "${MCP_EMAIL_ALERT_DESKTOP}",
            "MCP_EMAIL_ALERT_SOUND": "${MCP_EMAIL_ALERT_SOUND}",
            "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "${MCP_EMAIL_ALERT_URGENCY_THRESHOLD}",
            "MCP_EMAIL_ALERT_WEBHOOK_URL": "${MCP_EMAIL_ALERT_WEBHOOK_URL}",
            "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "${MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE}",
            "MCP_EMAIL_HOOK_AUTO_CALENDAR": "${MCP_EMAIL_HOOK_AUTO_CALENDAR}",
            "MCP_EMAIL_HOOK_CALENDAR_NAME": "${MCP_EMAIL_HOOK_CALENDAR_NAME}",
            "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "${MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES}",
            "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "${MCP_EMAIL_HOOK_CALENDAR_CONFIRM}",
            "MCP_EMAIL_SYSTEM_ONE_ENABLED": "${MCP_EMAIL_SYSTEM_ONE_ENABLED}",
            "MCP_EMAIL_HTTP_HOST": "${MCP_EMAIL_HTTP_HOST}",
            "MCP_EMAIL_HTTP_TOKEN": "${MCP_EMAIL_HTTP_TOKEN}",
            "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "${MCP_EMAIL_HTTP_ALLOWED_HOSTS}"
          }
        }
      }
    }
    {
      "servers": {
        "mailoo": {
          "type": "stdio",
          "command": "npx",
          "args": [
            "-y",
            "@bitfloo/[email protected]"
          ],
          "env": {
            "MCP_EMAIL_ADDRESS": "${MCP_EMAIL_ADDRESS}",
            "MCP_EMAIL_PASSWORD": "${MCP_EMAIL_PASSWORD}",
            "MCP_EMAIL_IMAP_HOST": "${MCP_EMAIL_IMAP_HOST}",
            "MCP_EMAIL_SMTP_HOST": "${MCP_EMAIL_SMTP_HOST}",
            "MCP_EMAIL_ACCOUNT_NAME": "${MCP_EMAIL_ACCOUNT_NAME}",
            "MCP_EMAIL_FULL_NAME": "${MCP_EMAIL_FULL_NAME}",
            "MCP_EMAIL_USERNAME": "${MCP_EMAIL_USERNAME}",
            "MCP_EMAIL_IMAP_PORT": "${MCP_EMAIL_IMAP_PORT}",
            "MCP_EMAIL_IMAP_TLS": "${MCP_EMAIL_IMAP_TLS}",
            "MCP_EMAIL_IMAP_STARTTLS": "${MCP_EMAIL_IMAP_STARTTLS}",
            "MCP_EMAIL_IMAP_VERIFY_SSL": "${MCP_EMAIL_IMAP_VERIFY_SSL}",
            "MCP_EMAIL_IMAP_DISABLE_IMAP4REV2": "${MCP_EMAIL_IMAP_DISABLE_IMAP4REV2}",
            "MCP_EMAIL_SIEVE_HOST": "${MCP_EMAIL_SIEVE_HOST}",
            "MCP_EMAIL_SIEVE_PORT": "${MCP_EMAIL_SIEVE_PORT}",
            "MCP_EMAIL_SMTP_PORT": "${MCP_EMAIL_SMTP_PORT}",
            "MCP_EMAIL_SMTP_TLS": "${MCP_EMAIL_SMTP_TLS}",
            "MCP_EMAIL_SMTP_STARTTLS": "${MCP_EMAIL_SMTP_STARTTLS}",
            "MCP_EMAIL_SMTP_VERIFY_SSL": "${MCP_EMAIL_SMTP_VERIFY_SSL}",
            "MCP_EMAIL_SMTP_POOL_ENABLED": "${MCP_EMAIL_SMTP_POOL_ENABLED}",
            "MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS": "${MCP_EMAIL_SMTP_POOL_MAX_CONNECTIONS}",
            "MCP_EMAIL_SMTP_POOL_MAX_MESSAGES": "${MCP_EMAIL_SMTP_POOL_MAX_MESSAGES}",
            "MCP_EMAIL_OAUTH2_PROVIDER": "${MCP_EMAIL_OAUTH2_PROVIDER}",
            "MCP_EMAIL_OAUTH2_CLIENT_ID": "${MCP_EMAIL_OAUTH2_CLIENT_ID}",
            "MCP_EMAIL_OAUTH2_CLIENT_SECRET": "${MCP_EMAIL_OAUTH2_CLIENT_SECRET}",
            "MCP_EMAIL_OAUTH2_REFRESH_TOKEN": "${MCP_EMAIL_OAUTH2_REFRESH_TOKEN}",
            "MCP_EMAIL_RATE_LIMIT": "${MCP_EMAIL_RATE_LIMIT}",
            "MCP_EMAIL_READ_ONLY": "${MCP_EMAIL_READ_ONLY}",
            "MCP_EMAIL_SAVE_TO_SENT": "${MCP_EMAIL_SAVE_TO_SENT}",
            "MCP_EMAIL_WATCHER_ENABLED": "${MCP_EMAIL_WATCHER_ENABLED}",
            "MCP_EMAIL_WATCHER_FOLDERS": "${MCP_EMAIL_WATCHER_FOLDERS}",
            "MCP_EMAIL_WATCHER_IDLE_TIMEOUT": "${MCP_EMAIL_WATCHER_IDLE_TIMEOUT}",
            "MCP_EMAIL_HOOK_ON_NEW_EMAIL": "${MCP_EMAIL_HOOK_ON_NEW_EMAIL}",
            "MCP_EMAIL_HOOK_PRESET": "${MCP_EMAIL_HOOK_PRESET}",
            "MCP_EMAIL_HOOK_AUTO_LABEL": "${MCP_EMAIL_HOOK_AUTO_LABEL}",
            "MCP_EMAIL_HOOK_AUTO_FLAG": "${MCP_EMAIL_HOOK_AUTO_FLAG}",
            "MCP_EMAIL_HOOK_BATCH_DELAY": "${MCP_EMAIL_HOOK_BATCH_DELAY}",
            "MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS": "${MCP_EMAIL_HOOK_CUSTOM_INSTRUCTIONS}",
            "MCP_EMAIL_ALERT_DESKTOP": "${MCP_EMAIL_ALERT_DESKTOP}",
            "MCP_EMAIL_ALERT_SOUND": "${MCP_EMAIL_ALERT_SOUND}",
            "MCP_EMAIL_ALERT_URGENCY_THRESHOLD": "${MCP_EMAIL_ALERT_URGENCY_THRESHOLD}",
            "MCP_EMAIL_ALERT_WEBHOOK_URL": "${MCP_EMAIL_ALERT_WEBHOOK_URL}",
            "MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE": "${MCP_EMAIL_ALERT_WEBHOOK_ALLOW_PRIVATE}",
            "MCP_EMAIL_HOOK_AUTO_CALENDAR": "${MCP_EMAIL_HOOK_AUTO_CALENDAR}",
            "MCP_EMAIL_HOOK_CALENDAR_NAME": "${MCP_EMAIL_HOOK_CALENDAR_NAME}",
            "MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES": "${MCP_EMAIL_HOOK_CALENDAR_ALARM_MINUTES}",
            "MCP_EMAIL_HOOK_CALENDAR_CONFIRM": "${MCP_EMAIL_HOOK_CALENDAR_CONFIRM}",
            "MCP_EMAIL_SYSTEM_ONE_ENABLED": "${MCP_EMAIL_SYSTEM_ONE_ENABLED}",
            "MCP_EMAIL_HTTP_HOST": "${MCP_EMAIL_HTTP_HOST}",
            "MCP_EMAIL_HTTP_TOKEN": "${MCP_EMAIL_HTTP_TOKEN}",
            "MCP_EMAIL_HTTP_ALLOWED_HOSTS": "${MCP_EMAIL_HTTP_ALLOWED_HOSTS}"
          }
        }
      }
    }
    name: my-agent
    target: local
    servers:
    - hub: io.github.Bitfloo/mailoo
    
    • not probed yet: tools unpinned, ingest lists them

    tools

    Probe result: faileddocker: no MCP server found (:8000/mcp: HTTP 404: MCPError: MCP server process failed; :8000/: HTTP 404: MCPError: Not Found) }, { "expected": "number", "code": "invalid_type", "received": "NaN", "path": [ "accounts", 0, "smtp", "pool", "max_messages" ], "message": "Invalid input: expected number, received NaN" } ] [supergateway] Child exited: code=1, signal=null; baremetal: MCPError: Connection closed; server stderr: …accounts", 0, "smtp", "pool", "max_connections" ], "message": "Invalid input…

    runs · 1

    the latest tests of this entry by the hub and its workers, newest first
    dateworkermethodstatussandboxreason
    2026-10-17 11:24 local-mac-vm docker failed gvisor docker: no MCP server found (:8000/mcp: HTTP 404: MCPError: MCP server process failed; :8000/: HTTP 404: MCPError: Not Found) }, { "expected": "number", "code":…