Skip to main content
Loss of provenance

A previous release had provenance metadata, but this release does not. View details.

Chronos — agent-inbox

License: MIT Python 3.11+

Local-first email and calendar inbox for AI agents. Syncs Gmail and Google Calendar into a single queryable SQLite database and exposes all data through an MCP server.

Features

  • Sync multiple Gmail and Google Calendar accounts into one SQLite database
  • Full-text search via FTS5 with BM25 relevance ranking (messages, events, attachment names)
  • MCP server via chronos --mcp-stdio (stdio transport, no port required)
  • HTTP REST API at localhost:7070 for direct queries
  • Read-only SQL interface via POST /v1/query
  • Optimistic event writes with provider-wins conflict resolution
  • Incremental sync with historyId (Gmail) and syncToken (Calendar)
  • ULID primary keys, WAL mode, no cloud dependencies at query time

Installation

pipx install chronos-mcp

Or from source:

git clone https://github.com/CourtimusPrime/chronos.git
cd chronos
pip install -e .

Setup

Run the interactive walkthrough for detailed step-by-step instructions:

chronos --walkthrough

This prints the full guide in the terminal and saves it to ~/.chronos/WALKTHROUGH.md for future reference.

Quick start

1. Google Cloud Console

  • Create a project at console.cloud.google.com
  • Enable Gmail API and Google Calendar API
  • Configure OAuth consent screen (External, Testing mode) — add your Google account as a Test User
  • Add scopes: https://mail.google.com/ and https://www.googleapis.com/auth/calendar
  • Create an OAuth client ID — Application type: Web application
  • Add authorized redirect URI: http://localhost:9004/callback
  • Download the credentials JSON

Desktop App credentials ("installed" JSON shape) are not supported — Chronos uses the https://mail.google.com/ restricted scope, which requires a Web Application OAuth client in Testing mode.

2. Register accounts

# Stage your credentials file
chronos --use /path/to/credentials.json

# Add accounts (opens browser for OAuth consent)
chronos --add personal
chronos --add work

3. Start syncing

chronos --start

Chronos downloads all your emails and calendar events into a local SQLite database. Your AI agents query this database — no live Google API calls at read time.

4. Add the MCP server

chronos --mcp

Writes the stdio entry into .mcp.json and appends instructions to ~/.claude/CLAUDE.md.

5. Test it

claude "What's the most recent email I received?"

CLI Reference

chronos --use CREDENTIALS_PATH          # Stage a credentials JSON for --add
chronos --add ALIAS                     # Register a new account (requires prior --use)
chronos --remove ALIAS                  # Remove an account and its data
chronos --list                          # List all registered accounts
chronos --test ALIAS                    # Test account tokens
chronos --start [--http-port N]         # Start daemon (HTTP API + background sync)
chronos --stop                          # Stop the running daemon (preserves synced data)
chronos --status                        # Show sync status
chronos --sync [ALIAS] [--type full|incremental]  # Trigger sync
chronos --mcp                           # Add Chronos to .mcp.json (prompts for scope)
chronos --mcp-stdio                     # Start embedded MCP server on stdio
chronos --walkthrough                   # Print full setup guide

Ctrl+C vs --stop: Pressing Ctrl+C while chronos --start is running wipes synced data (emails, threads, events, calendars) but preserves accounts. Use chronos --stop from another terminal for a clean shutdown that preserves data.

Environment Variables

Variable Default Description
CHRONOS_HOME ~/.chronos Credentials and database directory
CHRONOS_DB_PATH $CHRONOS_HOME/chronos.db SQLite database file
CHRONOS_HTTP_PORT 7070 HTTP API port
CHRONOS_LOG_LEVEL INFO Log level

Configuration

config.yml is auto-created at ~/.chronos/config.yml on first run. The OAuth callback port is the most commonly customized setting:

settings:
  oauth:
    callback_port: 9004     # local server bind during `chronos --add`
    callback_path: /callback # appended to the redirect URI

If you change callback_port, update the Authorized redirect URI in Google Cloud Console to match.

License

MIT

Metadata

Release files for chronos-mcp 0.1.19

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Loss of provenance

These files do not have provenance metadata, despite files in a prior release including this data.

We recommend further investigation before installing these files. View details.

Source distribution (sdist)

Source distribution for chronos-mcp 0.1.19
File Size Uploaded Provenance Actions
chronos_mcp-0.1.19.tar.gz 61.9 kB Without provenance Details for chronos_mcp-0.1.19.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for chronos-mcp 0.1.19
File Interpreter ABI Platform Actions
chronos_mcp-0.1.19-py3-none-any.whl Python 3 none any Details for chronos_mcp-0.1.19-py3-none-any.whl

Total release size: 121.5 kB

Release files / chronos_mcp-0.1.19.tar.gz

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL chronos_mcp-0.1.19.tar.gz
Size 61.9 kB
Tags Source
SHA-256 checksum
How to use checksums
13e4ab8a8f5486475ca503c88f79b89c4f8240421f7267ade4a43f3b7ed73f37
BLAKE2b-256 checksum
How to use checksums
61ed5c283e4be35c9de776dc69fddf29a83fd275fc2d77cafd73d1163738cc85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / chronos_mcp-0.1.19-py3-none-any.whl

Loss of provenance

This file belongs to a release without provenance metadata, despite a prior release including this data.

We recommend further investigation before installing this file. View details.

Download URL chronos_mcp-0.1.19-py3-none-any.whl
Size 59.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
15ff395b71f63572c6b2f70faf3c69745f6a1245da94d41c7d24fd519402e5ec
BLAKE2b-256 checksum
How to use checksums
16f18fa7d0c6aee918b60591c0211756edb314ff011765106519b8a7f505706b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for chronos-mcp 0.1.19

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.

Loss of provenance

A previous release of these files had provenance metadata, but this release does not.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Release comparison

  • Removed 0.1.15 2 files With provenance
  • Added 0.1.19 2 files Without provenance

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page