Cloudflare Email MCP Server

Cloudflare Email MCP Server

Manages Cloudflare KV namespaces and automates email processing from ProtonMail Bridge to structured KV storage with folder mapping.

Category
Visit Server

README

Cloudflare Email MCP Server

A comprehensive Model Context Protocol server for Cloudflare KV operations and automated email processing from ProtonMail Bridge to Cloudflare KV namespaces.

Features

KV Operations

  • Key Management: List, count, get, put, delete keys in any KV namespace
  • Pagination: Handle large datasets with cursor-based pagination
  • Bulk Operations: Retrieve multiple keys efficiently

Email Processing

  • Automated Transfer: Move emails from specific IMAP folders to corresponding KV namespaces
  • UUID v5 Body IDs: Deterministic body identification with separate storage
  • Folder Mapping: Pre-configured mappings for court, government, and legal correspondence
  • Status Tracking: Pending/processed status for workflow management

Architecture

Two-Tier Storage

Court KV Namespace:
├── Key: 2026.02.09_casework_ico_org_uk_10-30-45
└── Value: {
    "from": "casework@ico.org.uk",
    "to": "rose@mobicycle.ee", 
    "subject": "Your complaint reference IC-...",
    "body": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
    "namespace": "ICO Complaints",
    "status": "pending"
}

Body KV Namespace (by year):
├── Key: f47ac10b-58cc-4372-a567-0e02b2c3d479
└── Value: { "text": "Dear Ms Liu..." }

Folder Mappings

Automatically processes emails from:

  • Courts: Appeal, Chancery, Admin Court, King's Bench, Supreme, etc.
  • Government: GLD, US State Dept, Estonian Government
  • Complaints: HMCTS, ICO, PHSO, Bar Standards, Parliament
  • Parties: Liu Litigation, HK Law, Lessel Property, etc.

Setup

Prerequisites

  • Bun runtime
  • ProtonMail Bridge running locally
  • Cloudflare account with KV access
  • Wrangler CLI configured

Authentication

The server uses Wrangler OAuth tokens automatically:

wrangler auth login

Installation

bun install
bun run build
bun start

Usage

MCP Tools

KV Operations

// Count keys in a namespace
kv_keys_count({
  namespace_id: "your-namespace-id",
  prefix: "email:"
})

// List keys with pagination  
kv_keys_list({
  namespace_id: "your-namespace-id",
  prefix: "2026.02",
  limit: 100,
  cursor: "next-page-cursor"
})

// Get/set individual values
kv_key_get({ namespace_id: "...", key: "..." })
kv_key_put({ namespace_id: "...", key: "...", value: "..." })

Email Processing

// Transfer emails from approved folders
email_transfer_folders({
  folders: ["INBOX/Courts/Supreme"],
  since: "2026-02-01T00:00:00Z",
  dry_run: true
})

// Check processing stats
email_folder_stats({
  folder_name: "INBOX/Complaints/ICO"
})

// List all folders and their approval status
email_list_folders()

Configuration

Approved Folders

Only pre-configured folders automatically sync to KV:

  • Legal correspondence folders
  • Court communications
  • Government agencies
  • Complaint systems

KV Namespaces

  • Court namespaces: One per jurisdiction
  • Body storage: Separated by year (email-bodies-2026)
  • Account mapping: Bridge gRPC account information

Development

Project Structure

src/
├── index.ts           # Main MCP server with stdio transport
├── cloudflare-api.ts  # KV operations via Cloudflare API
└── email-processor.ts # IMAP to KV sync logic

dist/                  # Built JavaScript
README.md             # This file
package.json          # Dependencies and scripts

Building

bun run build    # TypeScript compilation
bun run dev     # Watch mode

Testing

# Dry run email processing
email_transfer_folders({ dry_run: true })

# Test KV operations
kv_keys_count({ namespace_id: "test-namespace" })

Integration

Claude Code MCP Configuration

Add to Claude Code MCP settings:

{
  "mcpServers": {
    "cloudflare-email": {
      "command": "bun",
      "args": ["start"],
      "cwd": "/path/to/this/directory"
    }
  }
}

Environment Variables

# Optional - detected automatically from wrangler
CLOUDFLARE_API_TOKEN=your-token
CLOUDFLARE_ACCOUNT_ID=your-account-id

Automation

Bridge Integration

Works with ProtonMail Bridge gRPC for account mapping:

  • Automatic token capture on Bridge restart
  • Account structure pushed to KV
  • Prevents email double-counting

Workflow

  1. Bridge receives emails in configured folders
  2. MCP server syncs new emails to KV namespaces
  3. AI triage system processes pending emails
  4. Status updates track workflow progress

License

Internal MobiCycle OÜ project - Not for public distribution

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured