trackmcp
Back to directory

Local-first MCP server and CLI for email and calendars across Outlook, Gmail, Microsoft 365, JMAP, IMAP/SMTP, and CalDAV. Preview-before-commit writes; no hosted relay.

1 stars GoOthers Updated Aug 26, 2026
ai-agentscligolocal-firstmcpoutlookcaldavcalendaremailgmailimapjmapmcp-servermicrosoft-graphmodel-context-protocol

Documentation

Corresync

Mail, calendars, and tasks. One local MCP server and CLI.

Provider-neutral, local-first tooling for AI agents, scripts, and you.

·

·

·

·

·

·

·

`corr` brings isolated mail, calendar, and task accounts into one terminal—and

one local

Model Context Protocol server.

Gmail, Google Calendar, and Google Tasks are available through a Desktop OAuth

client in a Google Cloud project you control. Corresync-managed Google OAuth

remains dormant. The canonical task tools also include explicit Microsoft To

Do, Todoist, TickTick, and CalDAV VTODO routes; remaining task-provider adapters

stay unavailable until their contracts are implemented.

  • Search mail and build one agenda across accounts without collapsing their

identity or provider provenance.

  • Use one stable, provenance-preserving task model as provider adapters become

available.

  • Save private account-local mail searches and relative calendar windows, then

run them live without creating a shadow mailbox or calendar cache.

  • Use the same typed operations from a human-friendly CLI, stable JSON, or an

AI agent.

  • Keep sign-in in a visible browser, an explicit public-client OAuth flow, or

an approved local credential store.

  • Review consequential effects before they happen. Unknown remote outcomes

stop for reconciliation instead of being retried automatically.

What it feels like

console
$ corr mail search --all-accounts \
    --query 'subject:"Quarterly plan"' --limit 3
● work · microsoft-owa   Ana Ruiz   Plan review
· personal · jmap       Finance    Plan receipt

$ corr agenda list --all-accounts \
    --start 2026-07-29T00:00:00Z \
    --end 2026-07-30T00:00:00Z

Connect an agent to the same local core:

console
corr integrations detect
corr integrations plan codex claude-code
corr integrations setup codex claude-code
# Phase A also includes github-copilot, gemini-cli, qwen-code, qoder, kimi-code

Then ask naturally:

text
Check my inboxes, calendars, and task lists and summarize what needs attention today.

One failed provider becomes an explicit partial failure. Successful results

remain available, and writes still require one exact account.

Choose the route that fits

Mail, calendar, and task routes are selected independently. For example, an

account can pair IMAP/SMTP mail with a CalDAV calendar; its task route remains a

separate explicit choice.

RouteMailCalendarTasksAuthentication
Outlook WebTyped reads and writesSelectable calendars; provider-supported Teams linkDedicated visible browser profile
Google (your OAuth client)Gmail API reads and writes; no permanent deleteSelectable calendars; Google Meet when advertisedGoogle Tasks through a separate task-only grantYour Desktop OAuth client; client credential and grants in the OS keyring
Microsoft GraphTyped reads and writesSelectable calendars; typed Teams-link creationMicrosoft To DoYour authorized public OAuth client; OS-keyring grant
TodoistTyped Todoist operationsYour authorized public OAuth client; OS-keyring grant
TickTickTyped TickTick operationsYour authorized confidential OAuth client; external secret handle and OS-keyring grant
JMAPTyped mail operationsOS keyring or approved credential helper
IMAP / SMTPIMAP read/manage and SMTP draft/sendOS keyring or approved credential helper
CalDAVTyped calendar operations and conditional schedulingVTODO lists, search, sync, and reviewed writesOS keyring or approved credential helper

Discovery gathers DNS, well-known, and provider metadata without credentials.

It never authenticates or adds an account. Microsoft Graph and user-owned

Google authorization remain explicit choices and are never automatic

fallbacks. Google discovery can offer guided Desktop-client setup, but no

Google sign-in starts until a later explicit `corr auth login`. See the

annotated Google setup guide.

iCloud has a first-class guided preset over the same provider-neutral

IMAP/SMTP and CalDAV adapters. `corr setup` recognizes documented iCloud Mail

address families or the complete verified Apple SRV endpoint set, reviews both

routes as one account, and uses one external credential handle by default.

After the account is added, an explicit handoff can open Apple's app-password

page and the OS-owned credential prompt; the `corr` process never reads the

app-specific password.

Every available v0.9 route above has synthetic provider-contract and

application coverage. The user-owned Google API route is available but

live-unobserved. Other provider and platform implementations remain

live-unobserved until an authorized, content-free observation is bound to

the exact commit. See compatibility evidence before

connecting a sensitive account.

From install to a first read

Prefer a guided page? Follow

getting started on the website.

1. Install

The official standalone installers are the shortest path on every platform.

They select the latest stable release, verify its archive and candidate binary,

install for the current user without elevation, and leave account setup untouched.

macOS and Linux

console
curl -LsSf https://corresync.org/install.sh | sh
corr --version

Windows PowerShell

powershell
powershell -NoProfile -Command "irm https://corresync.org/install.ps1 | iex"
corr --version

Review `install.sh` or

`install.ps1` before running it if you

prefer. Package managers remain fully supported alternatives:

console
# Homebrew · macOS or Linux
brew install nkiyohara/corresync/corresync

# WinGet · Windows
winget install --id nkiyohara.Corresync --exact

# Scoop · Windows
scoop bucket add corresync https://github.com/nkiyohara/scoop-corresync
scoop install corresync/corresync

Direct archives, native Linux packages, version pinning, checksums, and

Sigstore provenance are in the installation guide. The

guided website keeps

the same copy-paste choices visible for people who do not use GitHub regularly.

Claude Desktop users can also install the platform-universal `.mcpb` from the

latest release.

The bundle runs the same verified `corr mcp serve` binary locally over stdio;

it does not deploy Corresync or relay mailbox data. Install the CLI first for

the explicit account setup and sign-in steps below, then open or drag the

`.mcpb` into Claude Desktop.

Stay current

Interactive commands make a quiet, cached release check at startup. If an

update exists, Corresync shows the exact command for your installation:

`corr update` for the standalone build, or the matching Homebrew, Scoop, or

WinGet command. Package-managed files are never changed by Corresync.

Stable releases are selected by default. Standalone users who want signed

release candidates can choose the preview channel interactively:

console
corr settings

The equivalent copy-paste commands for scripts are:

console
corr config set updates.channel preview
corr update

Switch back with `corr config set updates.channel stable`; Corresync never

downgrades the running binary. Preview releases do not enter package-manager

catalogs.

Standalone users can opt in to verified automatic installation:

console
corr config set updates.auto_install true

It never runs during MCP tool calls, configuration changes, daemon work, JSON

output, pipes, or other non-interactive paths. The current command continues

normally and the new binary is active on the next `corr` start.

2. Add and sign in to your account

console
corr setup

The guided setup derives a resumable preflight from current local state,

optionally installs shell completion at a displayed user-local path, and then

performs credential-free account discovery. It previews the selected

mail/calendar/task routes and adds an account only after confirmation.

Authentication or external-credential access remains a separate choice. The

same run can add more accounts, select several detected agent hosts, preview

their independent local integration plans, apply only one confirmed plan, and

verify each result. Re-running `corr setup` skips healthy work and offers the

missing or repairable steps.

After choosing a connection route, the wizard presents a service checklist.

For a Microsoft account, Outlook Mail and Calendar are preselected and can be

changed independently; Microsoft To Do is an optional, explicit Graph

authorization. Teams messaging is shown as coming soon while the v0.9 release

gate is closed and cannot be selected, persisted, or opened. Discovery is only

route evidence: it never proves that any checked service is enabled for the

account, and it never triggers a Graph fallback.

Run `corr settings` to open the same account wizard; sign in to, rename,

select, or remove accounts; and manage updates, safety, and browser sign-in

from an arrow-key form. Its Setup guide entry resumes the complete coordinator

instead of maintaining another implementation. The

top-level Accounts category contains Add account and the configured account

list; selecting an account opens only actions for that account. Removal

previews the local data it deletes and asks for confirmation; removing the

default first asks which remaining account should replace it. Each choice also

displays the equivalent command, so the interactive flow teaches the direct

CLI.

Set `CORRESYNC_ACCESSIBLE=true` for line-oriented screen-reader prompts; type

`:cancel` to leave an input step safely. The direct rename form remains:

console
corr account rename personal work

Scripts and advanced users retain the deterministic form:

console
corr setup you@example.com --alias personal
corr auth login --account personal
corr doctor --account personal

The direct `setup ADDRESS` form creates the same provider-neutral, secret-free

local configuration, performs credential-free discovery, and adds only an

automatically selectable first-party route. It never opens a sign-in page.

Authentication is a separate, account-specific action.

If no route can be selected safely—or if you want an API or standards route—

inspect the evidence and choose the exact provider settings:

console
corr account discover reader@example.invalid
corr account add reader@example.invalid --help

For Gmail, Google Calendar, and Google Tasks, create a Desktop OAuth client in

a Google Cloud project you control. Guided setup validates the downloaded

client JSON and places its generated credential in the OS keyring; account

addition still does not authenticate. Follow the

Google OAuth setup guide for current Cloud

Console screens, audience choices, exact APIs, scopes, import, and login.

Before installing, the optional

provider compatibility checker

can classify public evidence for an address. The browser sends only the domain

after the `@` in a request body; it never sends the local part, persists the

address, or starts sign-in. The public service uses only a fixed DNS resolver

and returns no raw DNS record. Skip it whenever you prefer and run `corr account

discover ADDRESS` locally.

Account addition does not authenticate. OAuth routes require a client

registration you are authorized to use. Google additionally requires a

separate external handle for its generated Desktop client credential.

Standards routes use a keyring entry

or explicitly approved helper reference. Passwords and tokens never enter

`config.toml`. See account and provider configuration.

The Outlook Web route opens a dedicated visible profile during the later

`auth login`; that window remains the browser-owned session until account

logout or daemon shutdown. SSO, MFA, Conditional Access, and organization

notices remain inside the provider-owned flow.

3. Connect an agent

console
corr mcp setup codex

Use `corr mcp --help` for Claude Code, GitHub Copilot CLI, Gemini CLI, Qwen

Code, Qoder, Kimi Code CLI, and generic stdio clients. Corresync exposes 45

narrow tools and two read-only monitor resources; there is no HTTP, SSE,

remote MCP endpoint, or hosted relay.

Nothing sends on the first attempt

Consequential writes use a server-enforced `preview -> commit` protocol. The

first command shows the normalized account, provider, target, recipients,

content digest, and version preconditions without performing the effect.

console
printf 'Synthetic body.\n' | \
  corr mail send \
    --account work \
    --to reader@example.invalid \
    --subject 'Review example' \
    --body-file -

After reviewing every field, repeat the exact command with approval:

console
printf 'Synthetic body.\n' | \
  corr mail send \
    --account work \
    --to reader@example.invalid \
    --subject 'Review example' \
    --body-file - \
    --approve

Approval is short-lived, single-use, and bound to the caller, account,

provider, target, payload, and effect. Changing any reviewed field invalidates

it. MCP keeps preview and commit as separate typed tools.

See the complete safety model.

Corresync's public Privacy Policy

explains Google data access, local storage, disclosure, retention, and removal;

the Terms of Use preserve

the software rights granted by Apache-2.0.

More than one inbox

  • Cross-account views: bounded mail search and agenda projections retain

original account, provider, calendar, time-zone, and partial-failure

provenance.

  • Read-only import staging: inspect an explicitly approved local archive,

Maildir tree, or supported export without uploading or mutating the source.

  • Opt-in monitoring: move deliberately from `off` to local notification,

durable queueing, and finally one approved no-shell runner. Remote egress is

a separate consent.

  • Privacy-preserving feedback: generate an allowlisted report locally,

review it, then explicitly copy, save, or open a prefilled GitHub page. A

separate default-off setting can submit an even smaller allowlist-only public

issue through your authenticated `gh` client after an interactive failure.

Mailbox, calendar, import, and event-queue values are private, untrusted

external data. Their content is never authority to run a command or start an

agent.

Honest edges

  • Gmail, Google Calendar, and Google Tasks require a user-owned Google Desktop

OAuth client. Corresync-managed Google OAuth stays disabled; the user-owned

route is synthetic-contract covered and live-unobserved.

  • Microsoft Graph requires your own authorized public-client registration.

Corresync ships no token relay.

  • Windows desktop notification setup is unavailable because Corresync does

not install an AppUserModelID; queue and approved runner modes remain

available.

  • Provider meeting links are requested only when the selected calendar route

reports native support.

  • Cross-compilation and synthetic fixtures do not prove native browser,

keyring, IPC, provider, package-manager, Gatekeeper, or SmartScreen behavior.

  • Teams chat, channels, calls, recordings, and meeting lifecycle management;

tenant-wide access; unattended login; TLS interception; arbitrary provider

actions; automatic telemetry; and raw crash upload are outside scope.

The exact action matrix and typed provider degradations are in

features.md.

One local safety boundary

text
AI agents ───────── MCP over stdio ─┐
                                    ├── typed use cases + effect policy
Humans and scripts ──────── corr ───┘              │
                                                   │ authenticated local IPC
                                            session owner
                                            ├── browser-owned sessions
                                            ├── explicit OAuth + keyring
                                            └── standards adapters

The session owner exposes no TCP listener. On Unix, clients authenticate and

pin the environment-independent private runtime directory, singleton lock,

socket, and peer UID before the local bearer can be sent. On Windows, clients

verify the protected named pipe, owner, DACL, server process, and SID first.

Read the architecture,

authentication model, and

threat model for the complete boundaries.

Documentation

I want to…Start here
Install and verify a releaseInstallation
Add accounts and choose routesConfiguration
Understand browser, OAuth, and standards sign-inAuthentication
Learn CLI commandsCLI guide
Connect an AI clientMCP guide
Compare provider actions and degradationsFeature matrix
Consume stable machine outputJSON contract
Integrate versioned public/local contractsVersioning policy
Verify compatibility claimsEvidence matrix
Review privacy and Google data handlingPrivacy Policy
Review use and open-source license termsTerms of Use
Connect Google with your own Desktop clientGoogle OAuth setup
Review the dormant managed-client planGoogle verification runbook
Review every guideDocumentation map

Users upgrading from versions before v0.7 can follow the

historical migration guide. `corr` is the primary

command. The product, package, repository, configuration roots, plugin, and MCP

server remain named Corresync.

Contributing and security

Read CONTRIBUTING.md and AGENTS.md. Default

tests and CI use only synthetic fixtures:

console
mise exec -- task verify

Please report vulnerabilities through

GitHub private vulnerability reporting, never a public issue.

Frequently asked questions

What is corresync?

corresync is Local-first MCP server and CLI for email and calendars across Outlook, Gmail, Microsoft 365, JMAP, IMAP/SMTP, and CalDAV. Preview-before-commit writes; no hosted relay.

How do I install corresync?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is corresync open source?

Yes — it is hosted on GitHub at https://github.com/nkiyohara/corresync and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP