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.
Metadata
Release files for postara-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| postara_mcp-0.1.0.tar.gz | 10.7 kB | Without provenance | Details for postara_mcp-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| postara_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for postara_mcp-0.1.0-py3-none-any.whl |
Total release size: 21.3 kB
Release files / postara_mcp-0.1.0.tar.gz
| Download URL | postara_mcp-0.1.0.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2ed74d1181a2e2e995dd9bbccafdabd1858d0e2244e1c309b7a8f39d965adddc
|
|
BLAKE2b-256 checksum How to use checksums |
e2a7be27057fab43717c66579995198d30e2fdd00f5fea67ead295c1953bd18a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Release files / postara_mcp-0.1.0-py3-none-any.whl
| Download URL | postara_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8ba44fafddb02937b16175a616f66cf02192a711c3986246723f26715492360d
|
|
BLAKE2b-256 checksum How to use checksums |
983721169c1565bcb3f572f6e5029fbfb675b0e33371d0ec467ad3387fb627ed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.0
|
Security for postara-mcp 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.