Parseur

io.github.parseurPublished by GitHub account parseurv1.6.0Updated Nov 3, 2026

Manage Parseur.com mailboxes, parser fields, documents, exports and webhooks.

Overview

AI-generated overview

Local MCP server that lets an assistant manage Parseur mailboxes, parser fields, documents, exports and webhooks through the Parseur API.

What you can do
  • List, search, sort and inspect mailboxes, including mailbox details and parsing schemas
  • List, filter and inspect documents, with details, processing logs and extracted parser fields
  • Upload documents by file, folder or text, and reprocess, skip, copy, split or delete them
  • Download mailbox, field or export results as CSV, JSON or XLSX
  • Create, list, enable, pause and delete webhooks, and listen to document and table events
When to use it
Useful when you already use Parseur for email or document data extraction and want an assistant to inspect mailboxes, check parsed results, upload new documents or wire up webhook integrations without leaving the chat.
Requirements
Runs locally as a Python package (parseur-py) via uvx. Requires a Parseur account and an API key supplied through the PARSEUR_API_KEY environment variable; PARSEUR_API_BASE can override the API base URL. Network access to the Parseur API is needed.
Before you install
The API key grants access to your Parseur account data, so keep it out of shared configs and logs. Document operations such as upload, reprocess, skip, copy, split and delete change real data, and webhook creation or deletion affects live integrations. The optional real-time listener forwards data through third-party localtunnel servers that are not covered by Parseur's privacy terms and are not end-to-end encrypted.

Installation

In SourceWeft

  1. Open Parseur in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

🤖🧙parseur-py

parseur-py is a modern Python client for the Parseur API.

It lets you manage mailboxes, documents, uploads, and webhooks programmatically or from the command line.

Built to help you automate document parsing at scale, parseur-py makes integrating with Parseur fast, easy, and Pythonic.

[GitHub Repo] [PyPI version] [License: MIT] [Read the Docs] [PyPI Downloads]


✨ Features

✅ List, search, and sort mailboxes
✅ Get mailbox details and schema
✅ List, search, filter, and sort documents
✅ Upload documents by file or email content
✅ Reprocess, skip, copy, or delete documents
✅ Manage custom webhooks for real-time events
✅ Listen to events in real time with a temporary webhook & tunnel
✅ Fully-featured Command Line Interface (CLI)


⚠️ Disclaimer about Localtunnel

When using the parseur listen command (with event listener support), your data is forwarded through localtunnel servers.

These servers are not affiliated with Parseur and are not covered by Parseur’s Privacy Policy or Data Processing Agreement.

Data transmitted through localtunnel is not encrypted end-to-end.

➡️ Use this feature at your own risk.

For production-grade setups, we strongly recommend configuring your own secure webhook endpoint instead of relying on localtunnel.


🚀 Quick Start

Install the package

bash
pip install parseur-py

With event listener support (Flask + localtunnel)

bash
pip install "parseur-py[listener]"

Install the package from source

bash
pip install -e .

Build documentation

bash
pip install -r requirements-doc.txtcd docsmake html

Run the tests

Unit tests run fully offline:

bash
pytest

Integration tests hit the real Parseur API. They create and delete real resources, so they're skipped unless credentials are provided via the environment (never committed or stored in ~/.parseur.conf):

bash
PARSEUR_API_BASE=https://api.parseur.com \PARSEUR_API_KEY=sk_your_key \pytest tests/integration -v

Initialize your configuration

Store your Parseur API credentials securely:

bash
parseur init --api-key YOUR_PARSEUR_API_KEY

Your config is saved (by default) in:

~/.parseur.conf

Example usage

List all your mailboxes:

bash
parseur list-mailboxes

List documents in a mailbox:

bash
parseur list-documents 12345

Upload a file to a mailbox (add --wait to block until it is parsed, with a live progress bar):

bash
parseur upload-file 12345 ./path/to/document.pdfparseur upload-file 12345 ./path/to/document.pdf --wait

Download a mailbox's results as a file (stdout by default, or --output):

bash
parseur download-mailbox 12345 --format csv -o results.csv     # whole mailboxparseur list-parser-fields 12345                               # find a table field idparseur download-field 12345 PF951 --format xlsx -o lines.xlsx  # a table field

Register a custom webhook:

bash
parseur create-webhook --event document.processed --target-url https://yourserver.com/webhook --mailbox-id 12345

Listen to events in real time (requires [listener]):

bash
parseur listen --event document.processed --mailbox-id 12345

With forwarding:

bash
parseur listen --event document.processed --mailbox-id 12345 --redirect-url http://localhost --redirect-port 8000

📜 CLI Commands

Run:

bash
parseur --help

for a full list of available commands.

Highlights

  • init: Set your API token and (optional) base URL
  • list-mailboxes: Search and sort mailboxes
  • get-mailbox: Fetch a mailbox by ID
  • get-mailbox-schema: Get the mailbox parsing schema
  • list-parser-fields: List the fields extracted by a mailbox
  • download-mailbox / download-field / download-export: Download results as a file (csv/json/xlsx)
  • list-export-configs: List a mailbox's custom export configurations
  • list-documents: Advanced document search, filtering, sorting
  • get-document / get-document-logs: Fetch document details and processing logs
  • reprocess-document / skip-document / copy-document / split-document / reverse-split-document / delete-document: Document lifecycle operations
  • upload-file / upload-text: Upload new documents (add --wait for synchronous parsing)
  • upload-folder: Upload every file matching a glob path
  • create-webhook / get-webhook / list-webhooks / delete-webhook: Create, get, list, and delete custom webhook integrations.
  • enable-webhook / pause-webhook: Activate or pause a webhook for a specific mailbox.
  • listen: Create a temporary webhook and listen to events in real time (with optional redirect & silent mode)

🔎 Advanced Search & Filtering

Mailbox listing supports:

  • Search by name or email prefix
  • Sort by:
    • name
    • document_count
    • template_count
    • PARSEDOK_count (processed)
    • PARSEDKO_count (failed)
    • QUOTAEXC_count (quota exceeded)
    • EXPORTKO_count (export failed)

Document listing supports:

  • Search in:
    • document ID
    • document name
    • template name
    • email addresses (from, to, cc, bcc)
    • document metadata header
  • Sort by:
    • name
    • created (received date)
    • processed date
    • status
  • Filter by:
    • received_after / received_before dates
  • Include parsed result in response

⚡ Webhooks Support

Easily register custom webhooks for events like:

  • document.processed
  • document.processed.flattened
  • document.template_needed
  • document.export_failed
  • table.processed
  • table.processed.flattened

Your webhook endpoint will receive POST notifications with Parseur payloads, enabling real-time integrations with your systems.


🤖 MCP Server (AI assistants)

Parseur hosts an MCP server at https://api.parseur.com/mcp. Add this URL to any MCP-compatible AI assistant (Claude, Codex, Cursor, …) to drive Parseur from it. No local install is needed.


🛠️ Configuration

Your API token and settings are stored in a simple INI file:

[parseur]api_token = YOUR_API_KEYbase_url = https://api.parseur.com

You can customize the path by setting `--config-path` in your calls if needed.


🐍 Python Client Usage

Beyond the CLI, parseur-py is a standard Python library. Example:

python
import parseur
parseur.api_key = "YOUR_API_KEY"
for mailbox in parseur.Mailbox.list():    print(mailbox.name)

Per-call API key override

Every method accepts an optional api_key argument that takes priority over the global parseur.api_key for that single call — useful for multi-account or multi-tenant code:

python
parseur.Mailbox.list(api_key="sk_account_a")parseur.Document.upload_file(123, "invoice.pdf", api_key="sk_account_b")

📖 Documentation

  • Parseur Official API Docs
  • This package mirrors Parseur’s REST API, adding pagination handling, schema support, and convenient CLI commands.

💼 License

MIT License


🤝 Contributing

We welcome contributions! Please:

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/foo)
  3. Commit your changes (git commit -am 'Add foo')
  4. Push to the branch (git push origin feature/foo)
  5. Open a pull request

✨ Credits

Developed with ❤️ by the Parseur team.


Parseur is the easiest way to automatically extract data from emails and documents. Stop copy-pasting data and automate your workflows!

Source: README.md at commit e6c4aab

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v1.6.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts