Skip to main content
Glama
Mohking1

maildoc

by Mohking1

maildoc

Lightweight email search, attachment retrieval, and PDF extraction tools for AI agents and automation.

Setup

pip install -r requirements.txt

Set credentials in .env (see .env.example):

GMAIL_USERNAME=user@example.com
GMAIL_APP_PASSWORD=your_app_password

Quickstart

from maildoc import search_emails, download_attachment, extract_pdf_text

# Search emails with attachments
emails = search_emails(
    sender="billing@example.com",
    with_attachments=True,
    limit=5,
)

# Download and extract text from PDF attachments (with optional password for protected files)
for email in emails:
    for att in email["attachments"]:
        if att["filename"].endswith(".pdf"):
            pdf_bytes = download_attachment(email["uid"], att["filename"])
            if pdf_bytes:
                # Pass password if the PDF is password-protected (e.g., bank statements)
                text = extract_pdf_text(pdf_bytes, password="optional_password")
                print(text)

MCP Server (Claude Desktop / Cursor / Antigravity)

Run as a Model Context Protocol (MCP) server:

python server.py

Example claude_desktop_config.json:

{
  "mcpServers": {
    "maildoc": {
      "command": "python",
      "args": ["/absolute/path/to/maildoc/server.py"],
      "env": {
        "GMAIL_USERNAME": "user@example.com",
        "GMAIL_APP_PASSWORD": "your_app_password"
      }
    }
  }
}

Tools Reference

  • search_emails(sender, subject, body, seen, date_gte, date_lt, with_attachments, folder, limit): Search mailbox and return structured dicts.

  • fetch_email_by_uid(uid, folder): Fetch a single email by UID.

  • list_folders(): List mailbox folders.

  • mark_email_as_read(uid, folder): Mark email as read.

  • move_email(uid, destination_folder, source_folder): Move email between folders.

  • delete_email(uid, folder): Delete email.

  • create_folder(folder_name): Create mailbox folder.

  • delete_folder(folder_name): Delete mailbox folder.

  • connect_to_email(), disconnect_from_email(): Connection lifecycle helpers.

PDF Extraction

  • read_pdf_attachment(uid, attachment_filename, password=None, folder="INBOX"): Download attachment and extract its text directly in one step (ideal for MCP / AI agents).

  • extract_pdf_text(pdf_bytes, password=None): Extract all text from PDF bytes.

  • extract_pdf_page_text(pdf_bytes, page_number, password=None): Extract text from a specific page (1-indexed).

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mohking1/maildoc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server