fastmail-mcp-server 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +50 -8
  2. package/package.json +45 -45
  3. package/src/index.ts +1 -1
package/README.md CHANGED
@@ -2,6 +2,34 @@
2
2
 
3
3
  MCP server for Fastmail. Read, search, organize, and send emails through Claude Desktop.
4
4
 
5
+ ## Features
6
+
7
+ - **Full read/write** - list, search, send, reply, move, mark as spam
8
+ - **Safe sending** - preview→confirm flow prevents accidental sends
9
+ - **Attachment text extraction** - PDFs, Word docs, Excel, PowerPoint extracted as readable text
10
+ - **Legacy .doc support** - uses macOS `textutil` for old Word formats
11
+ - **Image attachments** - returned as viewable content for Claude's built-in OCR
12
+ - **CC/BCC support** - full addressing on send and reply
13
+
14
+ ### Comparison
15
+
16
+ | Feature | radiosilence | @jahfer | willmeyers |
17
+ | --------------------------------- | :----------: | :-----: | :---------: |
18
+ | Read emails | ✅ | ✅ | ✅ |
19
+ | Search emails | ✅ | ✅ | ✅ |
20
+ | Send emails | ✅ | ❌ | ✅ |
21
+ | Reply to threads | ✅ | ❌ | ❌ |
22
+ | CC/BCC support | ✅ | ❌ | ✅ |
23
+ | Safe send (preview→confirm) | ✅ | ❌ | ❌ |
24
+ | Move/organize emails | ✅ | ❌ | ❌ |
25
+ | Mark as spam | ✅ | ❌ | ❌ |
26
+ | List attachments | ✅ | ❌ | ❌ |
27
+ | **Extract text from PDF/DOCX** | ✅ | ❌ | ❌ |
28
+ | **Extract text from legacy .doc** | ✅ | ❌ | ❌ |
29
+ | **Images for Claude OCR** | ✅ | ❌ | ❌ |
30
+ | Bun/TypeScript | ✅ | ✅ | ❌ (Python) |
31
+ | Actively maintained | ✅ | ❓ | ❓ |
32
+
5
33
  ## Prerequisites
6
34
 
7
35
  Requires [Bun](https://bun.sh) runtime:
@@ -82,14 +110,28 @@ No emails can be sent accidentally.
82
110
 
83
111
  ### Read Operations (no confirmation needed)
84
112
 
85
- | Tool | Description |
86
- | ------------------ | -------------------------------------------- |
87
- | `list_mailboxes` | List all folders with unread counts |
88
- | `list_emails` | List emails in a mailbox (returns summaries) |
89
- | `get_email` | Get full email content by ID |
90
- | `search_emails` | Search across all mailboxes |
91
- | `list_attachments` | List attachments on an email |
92
- | `get_attachment` | Download and read attachment content |
113
+ | Tool | Description |
114
+ | ------------------ | ------------------------------------------------ |
115
+ | `list_mailboxes` | List all folders with unread counts |
116
+ | `list_emails` | List emails in a mailbox (returns summaries) |
117
+ | `get_email` | Get full email content by ID |
118
+ | `search_emails` | Search across all mailboxes |
119
+ | `list_attachments` | List attachments on an email |
120
+ | `get_attachment` | Download and read attachment content (see below) |
121
+
122
+ ### Attachment Handling
123
+
124
+ `get_attachment` automatically extracts readable content from attachments:
125
+
126
+ | Format | Handling |
127
+ | ------------------------------------------- | ----------------------------------------------------------------------------- |
128
+ | Text files (txt, json, csv, xml) | Returned inline |
129
+ | Documents (PDF, DOCX, XLSX, PPTX, RTF, ODT) | Text extracted via [officeparser](https://github.com/harshankur/officeParser) |
130
+ | Legacy Word (.doc) | Text extracted via macOS `textutil` |
131
+ | Images (PNG, JPG, etc) | Returned as image content for Claude to view/OCR |
132
+ | Other binary | Base64 fallback |
133
+
134
+ Claude receives actual text content, not binary blobs - just like when you drag-and-drop files into Claude Desktop.
93
135
 
94
136
  ### Write Operations
95
137
 
package/package.json CHANGED
@@ -1,47 +1,47 @@
1
1
  {
2
- "name": "fastmail-mcp-server",
3
- "version": "0.2.0",
4
- "description": "MCP server for Fastmail - read, search, and send emails via Claude",
5
- "type": "module",
6
- "main": "src/index.ts",
7
- "files": [
8
- "src/**/*"
9
- ],
10
- "scripts": {
11
- "start": "bun run src/index.ts",
12
- "test": "bun run src/test.ts",
13
- "format": "biome check --write",
14
- "lint": "biome check"
15
- },
16
- "keywords": [
17
- "mcp",
18
- "fastmail",
19
- "jmap",
20
- "email",
21
- "claude",
22
- "ai",
23
- "model-context-protocol"
24
- ],
25
- "author": "James Cleveland <jc@blit.cc>",
26
- "license": "MIT",
27
- "repository": {
28
- "type": "git",
29
- "url": "git+https://github.com/radiosilence/fastmail-mcp-server.git"
30
- },
31
- "bugs": {
32
- "url": "https://github.com/radiosilence/fastmail-mcp-server/issues"
33
- },
34
- "homepage": "https://github.com/radiosilence/fastmail-mcp-server#readme",
35
- "engines": {
36
- "bun": ">=1.0.0"
37
- },
38
- "dependencies": {
39
- "@modelcontextprotocol/sdk": "^1.25.1",
40
- "officeparser": "^6.0.4",
41
- "zod": "^4.3.4"
42
- },
43
- "devDependencies": {
44
- "@biomejs/biome": "^2.3.10",
45
- "@types/bun": "latest"
46
- }
2
+ "name": "fastmail-mcp-server",
3
+ "version": "0.2.2",
4
+ "description": "MCP server for Fastmail - read, search, and send emails via Claude",
5
+ "type": "module",
6
+ "main": "src/index.ts",
7
+ "files": [
8
+ "src/**/*"
9
+ ],
10
+ "scripts": {
11
+ "start": "bun run src/index.ts",
12
+ "test": "bun run src/test.ts",
13
+ "format": "biome check --write",
14
+ "lint": "biome check"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "fastmail",
19
+ "jmap",
20
+ "email",
21
+ "claude",
22
+ "ai",
23
+ "model-context-protocol"
24
+ ],
25
+ "author": "James Cleveland <jc@blit.cc>",
26
+ "license": "MIT",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "git+https://github.com/radiosilence/fastmail-mcp-server.git"
30
+ },
31
+ "bugs": {
32
+ "url": "https://github.com/radiosilence/fastmail-mcp-server/issues"
33
+ },
34
+ "homepage": "https://github.com/radiosilence/fastmail-mcp-server#readme",
35
+ "engines": {
36
+ "bun": ">=1.0.0"
37
+ },
38
+ "dependencies": {
39
+ "@modelcontextprotocol/sdk": "^1.25.1",
40
+ "officeparser": "^6.0.4",
41
+ "zod": "^4.3.4"
42
+ },
43
+ "devDependencies": {
44
+ "@biomejs/biome": "^2.3.10",
45
+ "@types/bun": "latest"
46
+ }
47
47
  }
package/src/index.ts CHANGED
@@ -24,7 +24,7 @@ import type { Email, EmailAddress, Mailbox } from "./jmap/types.js";
24
24
 
25
25
  const server = new McpServer({
26
26
  name: "fastmail",
27
- version: "0.2.0",
27
+ version: "0.2.2",
28
28
  });
29
29
 
30
30
  // ============ Formatters ============