MCP server that exposes Postara mailboxes to Claude Desktop, Cursor, and Cline
Project description
postara-mcp
An MCP server that exposes Postara mailboxes to MCP clients like Claude Desktop, Cursor, and Cline.
It is a thin client: it holds a base URL and an API key and calls a running
Postara instance over HTTP. The same command works against a self-hosted
deployment or the hosted service. Its only dependencies are httpx and mcp.
Install
pip install 'git+https://github.com/jmluang/postara-mcp.git'
Or run it without installing, using uv:
uvx --from 'git+https://github.com/jmluang/postara-mcp.git' postara-mcp
Configure
The server reads two environment variables:
| Variable | Required | Default | Notes |
|---|---|---|---|
POSTARA_API_KEY |
yes | — | A scoped API key created in the Postara app. |
POSTARA_BASE_URL |
no | http://127.0.0.1:18080 |
URL of the running Postara instance. |
Create the API key in Postara (Workspace -> API keys). Give it only the scopes the client needs:
read— discover mailboxes, list folders and messages, fetch messages.mark_seen— change read/unread state. Add this only if the client should mark messages seen.
One postara-mcp process uses one API key, so it sees exactly the mailboxes
that key can access.
Connect Claude Desktop
Add the server to claude_desktop_config.json:
{
"mcpServers": {
"postara": {
"command": "uvx",
"args": ["--from", "git+https://github.com/jmluang/postara-mcp.git", "postara-mcp"],
"env": {
"POSTARA_BASE_URL": "http://127.0.0.1:18080",
"POSTARA_API_KEY": "pst_live_your_key_here"
}
}
}
}
If you installed the package with pip, set "command": "postara-mcp" and drop
args instead. Restart Claude Desktop; the Postara tools then appear.
Cursor and Cline use the same MCP server config shape.
Tools
| Tool | Purpose |
|---|---|
list_mailboxes |
Discover mailboxes the key can access. Includes connection health. |
list_folders |
List folders in a mailbox. |
list_messages |
List message summaries, with folder/date/sender/read filters. |
get_message |
Fetch one message body by uid. |
mark_message_seen |
Mark a message read or unread (needs the mark_seen scope). |
list_mailboxes returns a health block per mailbox. A client should skip a
mailbox whose health.status is reconnect_required and ask the user to
reconnect it in Postara.
Transport
postara-mcp runs over stdio, the transport Claude Desktop, Cursor, and Cline
use for local MCP servers.
Develop
pip install -e '.[dev]'
pytest
License
Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file postara_mcp-0.1.0.tar.gz.
File metadata
- Download URL: postara_mcp-0.1.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ed74d1181a2e2e995dd9bbccafdabd1858d0e2244e1c309b7a8f39d965adddc
|
|
| MD5 |
3a7eeb25b89dd78e5416dcd54789e66f
|
|
| BLAKE2b-256 |
e2a7be27057fab43717c66579995198d30e2fdd00f5fea67ead295c1953bd18a
|
File details
Details for the file postara_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: postara_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8ba44fafddb02937b16175a616f66cf02192a711c3986246723f26715492360d
|
|
| MD5 |
ad448d6f5dda55964099ca441de90aaf
|
|
| BLAKE2b-256 |
983721169c1565bcb3f572f6e5029fbfb675b0e33371d0ec467ad3387fb627ed
|