MCP to access public lists on lists.apache.org
PonyMail MCP Server
An MCP (Model Context Protocol) server that provides access to the Apache PonyMail mailing list archive API.
Tools
| Tool | Description |
|------|-------------|
| list_lists | Get an overview of all available mailing lists and message counts |
| search_list | Search/browse a mailing list with filters (date, sender, subject, body, query) |
| get_email | Fetch a specific email by ID with full body and attachments |
| get_thread | Fetch the root message of a thread by thread ID |
| get_mbox | Download mbox-formatted archive data for bulk export |
| login | Authenticate via ASF OAuth to access private mailing lists |
| logout | Clear cached session cookie |
| auth_status | Check current authentication status |
Setup
cd /Users/rcbowen/devel/ponymail-mcp
npm install
Configure in Amazon Quick
- Open Settings → Capabilities → MCP Servers
- Click Add MCP / Skill → Local (stdio)
- Fill in:
- Name:
ponymail - Command:
node - Args:
/Users/rcbowen/devel/ponymail-mcp/index.js
- Name:
- Click Save
Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| PONYMAIL_BASE_URL | https://lists.apache.org | Base URL of the PonyMail instance |
| PONYMAIL_SESSION_COOKIE | (none) | Manual session cookie override (skips OAuth flow) |
Authentication (Private Lists)
Public lists work without authentication. For private/restricted lists, you have two options:
Option 1: Automated OAuth (Recommended)
Use the login tool from within Amazon Quick. It will:
- Open a local helper page at
http://localhost:39817 - The page links to PonyMail's login page — log in with your ASF LDAP credentials
- After logging in, grab the session cookie (see below) and paste it into the form
- The server validates the cookie and caches it to
~/.ponymail-mcp/session.json
Finding the HttpOnly cookie: The ponymail cookie is HttpOnly, so document.cookie and the Application tab won't show it. To find it:
- On
lists.apache.org(while logged in), open DevTools (Cmd+Option+I/F12) - Go to the Network tab and reload the page
- Click on any request (e.g., the page itself, or any
api/call) - In Headers → Request Headers → find the Cookie: line
- Copy the
ponymail=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxpart
Option 2: Manual Cookie
- Log into https://lists.apache.org in your browser
- Open DevTools → Application → Cookies → copy the session cookie
- Set the environment variable:
PONYMAIL_SESSION_COOKIE="ponymail=abc123..." - Add it to your MCP server config's environment variables
Sessions expire after ~20 hours. Use auth_status to check, logout to clear.
Usage Examples
Once connected, you can ask things like:
- "Search the dev@iceberg.apache.org list for messages about partition spec in the last 30 days"
- "Show me the available mailing lists"
- "Fetch email with ID xyz..."
- "Get the mbox archive for dev@httpd.apache.org for 2024-03"