stalwart-mail-mcp 2.2.0 → 2.3.0
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.
- package/Dockerfile +17 -0
- package/README.cs.md +17 -6
- package/README.md +16 -6
- package/dist/index.cjs +27054 -24641
- package/docker-compose.example.yml +18 -0
- package/docs/remote.md +134 -0
- package/docs/vzdaleny-server.md +131 -0
- package/package.json +8 -6
package/Dockerfile
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Remote mode: MCP over HTTP next to your Stalwart server (see docs/remote.md).
|
|
2
|
+
FROM node:22-alpine AS build
|
|
3
|
+
WORKDIR /app
|
|
4
|
+
COPY package.json package-lock.json tsconfig.json ./
|
|
5
|
+
RUN npm ci --ignore-scripts && npm rebuild esbuild
|
|
6
|
+
COPY src ./src
|
|
7
|
+
RUN npm run build
|
|
8
|
+
|
|
9
|
+
FROM node:22-alpine
|
|
10
|
+
ENV NODE_ENV=production
|
|
11
|
+
WORKDIR /app
|
|
12
|
+
COPY --from=build /app/dist/index.cjs ./dist/index.cjs
|
|
13
|
+
COPY LICENSE THIRD-PARTY-NOTICES.md ./
|
|
14
|
+
USER node
|
|
15
|
+
EXPOSE 8787
|
|
16
|
+
HEALTHCHECK --interval=30s --timeout=5s --retries=3 CMD wget -qO- http://127.0.0.1:8787/health >/dev/null || exit 1
|
|
17
|
+
CMD ["node", "dist/index.cjs", "--http"]
|
package/README.cs.md
CHANGED
|
@@ -15,6 +15,11 @@ Claude Desktop ──stdio──▶ dist/index.cjs (Node, tento MCP server)
|
|
|
15
15
|
https://mail.example.com/jmap (reverzní proxy → Stalwart)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
Existuje i **vzdálený režim**: tentýž server puštěný vedle Stalwartu a přidaný do Clauda jako
|
|
19
|
+
vlastní konektor, takže schránka funguje v claude.ai, v mobilních aplikacích i v každém
|
|
20
|
+
desktopovém chatu — lidé se přihlašují přes OAuth samotného Stalwartu a server žádné
|
|
21
|
+
přihlašovací údaje nedrží. Viz [docs/vzdaleny-server.md](docs/vzdaleny-server.md).
|
|
22
|
+
|
|
18
23
|
Jak ho zapojit do malé vlastní infrastruktury — reverzní proxy, co pustit ven, sdílené
|
|
19
24
|
schránky, vlastní balíček pro rodinu nebo tým — popisuje
|
|
20
25
|
[docs/mala-infrastruktura.md](docs/mala-infrastruktura.md).
|
|
@@ -57,16 +62,16 @@ Heslo se ukládá do klíčenky systému.
|
|
|
57
62
|
|
|
58
63
|
### Jakýkoli MCP klient (stdio)
|
|
59
64
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
Server je na npm jako [`stalwart-mail-mcp`](https://www.npmjs.com/package/stalwart-mail-mcp)
|
|
66
|
+
a v [registru MCP](https://registry.modelcontextprotocol.io) jako
|
|
67
|
+
`io.github.cybersmurf/stalwart-mail-mcp`, takže není potřeba nic stahovat:
|
|
63
68
|
|
|
64
69
|
```json
|
|
65
70
|
{
|
|
66
71
|
"mcpServers": {
|
|
67
72
|
"stalwart-mail": {
|
|
68
|
-
"command": "
|
|
69
|
-
"args": ["
|
|
73
|
+
"command": "npx",
|
|
74
|
+
"args": ["-y", "stalwart-mail-mcp"],
|
|
70
75
|
"env": {
|
|
71
76
|
"STALWART_URL": "https://mail.example.com",
|
|
72
77
|
"STALWART_USER": "jana@example.com",
|
|
@@ -77,7 +82,13 @@ npm install && npm run build
|
|
|
77
82
|
}
|
|
78
83
|
```
|
|
79
84
|
|
|
80
|
-
Claude Code: `claude mcp add stalwart-mail --env STALWART_URL=https://mail.example.com --env STALWART_USER=jana@example.com --env STALWART_PASSWORD=… --
|
|
85
|
+
Claude Code: `claude mcp add stalwart-mail --env STALWART_URL=https://mail.example.com --env STALWART_USER=jana@example.com --env STALWART_PASSWORD=… -- npx -y stalwart-mail-mcp`
|
|
86
|
+
|
|
87
|
+
### Claude na webu, v desktopovém chatu a v telefonu
|
|
88
|
+
|
|
89
|
+
Pusť server vedle Stalwartu (`stalwart-mail-mcp --http`, nebo obraz pro Docker) a přidej jeho
|
|
90
|
+
adresu jako vlastní konektor — krok za krokem v
|
|
91
|
+
[docs/vzdaleny-server.md](docs/vzdaleny-server.md).
|
|
81
92
|
|
|
82
93
|
## Nastavení
|
|
83
94
|
|
package/README.md
CHANGED
|
@@ -15,6 +15,11 @@ Claude Desktop ──stdio──▶ dist/index.cjs (Node, this MCP server)
|
|
|
15
15
|
https://mail.example.com/jmap (reverse proxy → Stalwart)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
There is also a **remote mode**: the same server run next to Stalwart, added to Claude as a
|
|
19
|
+
custom connector, so the mailbox works in claude.ai, the mobile apps and every desktop chat —
|
|
20
|
+
people sign in through Stalwart's own OAuth and the server holds no credentials. See
|
|
21
|
+
[docs/remote.md](docs/remote.md).
|
|
22
|
+
|
|
18
23
|
How it fits into a small self-hosted setup — reverse proxy, what to expose, shared mailboxes,
|
|
19
24
|
branded builds for a family or a team — is described in
|
|
20
25
|
[docs/small-infrastructure.md](docs/small-infrastructure.md).
|
|
@@ -57,16 +62,16 @@ Mistral API key for OCR. The password is kept in the operating system's keychain
|
|
|
57
62
|
|
|
58
63
|
### Any MCP client (stdio)
|
|
59
64
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
The server is on npm as [`stalwart-mail-mcp`](https://www.npmjs.com/package/stalwart-mail-mcp)
|
|
66
|
+
and in the [MCP Registry](https://registry.modelcontextprotocol.io) as
|
|
67
|
+
`io.github.cybersmurf/stalwart-mail-mcp`, so no checkout is needed:
|
|
63
68
|
|
|
64
69
|
```json
|
|
65
70
|
{
|
|
66
71
|
"mcpServers": {
|
|
67
72
|
"stalwart-mail": {
|
|
68
|
-
"command": "
|
|
69
|
-
"args": ["
|
|
73
|
+
"command": "npx",
|
|
74
|
+
"args": ["-y", "stalwart-mail-mcp"],
|
|
70
75
|
"env": {
|
|
71
76
|
"STALWART_URL": "https://mail.example.com",
|
|
72
77
|
"STALWART_USER": "jane@example.com",
|
|
@@ -77,7 +82,12 @@ npm install && npm run build
|
|
|
77
82
|
}
|
|
78
83
|
```
|
|
79
84
|
|
|
80
|
-
Claude Code: `claude mcp add stalwart-mail --env STALWART_URL=https://mail.example.com --env STALWART_USER=jane@example.com --env STALWART_PASSWORD=… --
|
|
85
|
+
Claude Code: `claude mcp add stalwart-mail --env STALWART_URL=https://mail.example.com --env STALWART_USER=jane@example.com --env STALWART_PASSWORD=… -- npx -y stalwart-mail-mcp`
|
|
86
|
+
|
|
87
|
+
### Claude on the web, desktop chat and phone
|
|
88
|
+
|
|
89
|
+
Run the server next to Stalwart (`stalwart-mail-mcp --http`, or the Docker image) and add its
|
|
90
|
+
URL as a custom connector — step by step in [docs/remote.md](docs/remote.md).
|
|
81
91
|
|
|
82
92
|
## Configuration
|
|
83
93
|
|