JMAP MCP
An MCP server that provides AI assistants with OAuth access to JMAP mailboxes, such as Stalwart. It enables zero-configuration setup by automatically discovering the JMAP server via DNS SRV or well-known endpoints. The server handles dynamic OAuth registration and stores only encrypted tokens, allowing agents to read, organize, draft, and send emails without exposing raw credentials.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- List mailboxes and connected accounts
- Search emails by text, sender, or date
- Create and send email drafts
- Move or delete emails
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
ghcr.io/kolapsis/jmap-mcp:0.3.0
{
"transport": "stdio",
"identifier": "ghcr.io/kolapsis/jmap-mcp:0.3.0",
"registryType": "oci",
"packageArguments": [
{
"type": "positional",
"value": "stdio"
}
],
"runtimeArguments": [
{
"type": "positional",
"value": "-i"
},
{
"name": "--volume",
"type": "named",
"value": "jmap-mcp-data:/data",
"description": "Named volume keeping the connected accounts between runs"
}
],
"environmentVariables": [
{
"name": "JMAP_MCP_ENABLE_SEND",
"choices": [
"true",
"false"
],
"default": "false",
"description": "Allow sending email; every message is still confirmed by the user"
},
{
"name": "JMAP_MCP_LOG_LEVEL",
"choices": [
"debug",
"info",
"warn",
"error"
],
"default": "info",
"description": "Log level"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"jmap-mcp-0-3-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JMAP_MCP_ENABLE_SEND=<YOUR_JMAP_MCP_ENABLE_SEND>",
"-e",
"JMAP_MCP_LOG_LEVEL=<YOUR_JMAP_MCP_LOG_LEVEL>",
"ghcr.io/kolapsis/jmap-mcp:0.3.0",
"stdio"
],
"env": {
"JMAP_MCP_ENABLE_SEND": "<YOUR_JMAP_MCP_ENABLE_SEND>",
"JMAP_MCP_LOG_LEVEL": "<YOUR_JMAP_MCP_LOG_LEVEL>"
}
}
}
}Cline
{
"mcpServers": {
"jmap-mcp-0-3-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JMAP_MCP_ENABLE_SEND=<YOUR_JMAP_MCP_ENABLE_SEND>",
"-e",
"JMAP_MCP_LOG_LEVEL=<YOUR_JMAP_MCP_LOG_LEVEL>",
"ghcr.io/kolapsis/jmap-mcp:0.3.0",
"stdio"
],
"env": {
"JMAP_MCP_ENABLE_SEND": "<YOUR_JMAP_MCP_ENABLE_SEND>",
"JMAP_MCP_LOG_LEVEL": "<YOUR_JMAP_MCP_LOG_LEVEL>"
}
}
}
}VS Code
{
"servers": {
"jmap-mcp-0-3-0": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JMAP_MCP_ENABLE_SEND=<YOUR_JMAP_MCP_ENABLE_SEND>",
"-e",
"JMAP_MCP_LOG_LEVEL=<YOUR_JMAP_MCP_LOG_LEVEL>",
"ghcr.io/kolapsis/jmap-mcp:0.3.0",
"stdio"
],
"env": {
"JMAP_MCP_ENABLE_SEND": "<YOUR_JMAP_MCP_ENABLE_SEND>",
"JMAP_MCP_LOG_LEVEL": "<YOUR_JMAP_MCP_LOG_LEVEL>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"jmap-mcp-0-3-0": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"JMAP_MCP_ENABLE_SEND=<YOUR_JMAP_MCP_ENABLE_SEND>",
"-e",
"JMAP_MCP_LOG_LEVEL=<YOUR_JMAP_MCP_LOG_LEVEL>",
"ghcr.io/kolapsis/jmap-mcp:0.3.0",
"stdio"
],
"env": {
"JMAP_MCP_ENABLE_SEND": "<YOUR_JMAP_MCP_ENABLE_SEND>",
"JMAP_MCP_LOG_LEVEL": "<YOUR_JMAP_MCP_LOG_LEVEL>"
}
}
}
}Let your agent find its tools
Find servers like JMAP MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.