# Corresync [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/nkiyohara/corresync  
**GitHub Stars:** 1  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/corresync

## Description
Local-first MCP for provider-neutral mail and calendars with isolated accounts and guarded writes.

## Claude Desktop Quick Installation
Remote MCP endpoint (confidence: high). Install path detected from listing signals. Add as a URL/SSE server in your client:

```json
"mcpServers": {
  "corresync": {
    "url": "https://corresync.org/"
  }
}
```

## Documentation & README

# Corresync

<!-- markdownlint-disable MD013 MD033 -->
<p align="center">
  <a href="https://corresync.org/">
    <img src="https://raw.githubusercontent.com/nkiyohara/corresync/HEAD/site/corresync-mark.svg" width="144" height="144" alt="Corresync: two correspondence flows around one local core">
  </a>
</p>

<p align="center">
  <strong>Mail, calendars, and tasks. One local MCP server and CLI.</strong><br>
  Provider-neutral, local-first tooling for AI agents, scripts, and you.
</p>

<p align="center">
  <a href="https://github.com/nkiyohara/corresync/actions/workflows/ci.yml"><img alt="CI status" src="https://github.com/nkiyohara/corresync/actions/workflows/ci.yml/badge.svg"></a>
  <a href="https://github.com/nkiyohara/corresync/releases/latest"><img alt="Latest release" src="https://img.shields.io/github/v/release/nkiyohara/corresync?display_name=tag&sort=semver"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/go.mod"><img alt="Go 1.26" src="https://img.shields.io/badge/Go-1.26-00ADD8?logo=go&logoColor=white"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/LICENSE"><img alt="Apache-2.0 license" src="https://img.shields.io/github/license/nkiyohara/corresync"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/docs/install.md"><img alt="macOS, Linux, and Windows" src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-334155"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/docs/mcp.md"><img alt="Model Context Protocol over stdio" src="https://img.shields.io/badge/MCP-stdio-6F5BD3"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/docs/README.md"><img alt="Current documentation" src="https://img.shields.io/badge/docs-current-3F7AD6"></a>
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/docs/architecture.md"><img alt="Local-first architecture" src="https://img.shields.io/badge/architecture-local--first-E0574A"></a>
</p>

<p align="center">
  <a href="https://corresync.org/">Website</a> ·
  <a href="https://corresync.org/getting-started.html">Getting started</a> ·
  <a href="https://corresync.org/providers.html">Providers</a> ·
  <a href="https://corresync.org/features.html">Features</a> ·
  <a href="https://corresync.org/safety.html">Safety</a> ·
  <a href="https://corresync.org/privacy.html">Privacy</a> ·
  <a href="https://corresync.org/terms.html">Terms</a> ·
  <a href="https://github.com/nkiyohara/corresync/blob/HEAD/docs/README.md">Technical docs</a>
</p>
<!-- markdownlint-enable MD013 MD033 -->

`corr` brings isolated mail, calendar, and task accounts into one terminal—and
one local
[Model Context Protocol](https://modelcontextprotocol.io/) 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.

<!-- markdownlint-disable MD013 -->
| Route | Mail | Calendar | Tasks | Authentication |
| --- | --- | --- | --- | --- |
| Outlook Web | Typed reads and writes | Selectable calendars; provider-supported Teams link | — | Dedicated visible browser profile |
| Google (your OAuth client) | Gmail API reads and writes; no permanent delete | Selectable calendars; Google Meet when advertised | Google Tasks through a separate task-only grant | Your Desktop OAuth client; client credential and grants in the OS keyring |
| Microsoft Graph | Typed reads and writes | Selectable calendars; typed Teams-link creation | Microsoft To Do | Your authorized public OAuth client; OS-keyring grant |
| Todoist | — | — | Typed Todoist operations | Your authorized public OAuth client; OS-keyring grant |
| TickTick | — | — | Typed TickTick operations | Your authorized confidential OAuth client; external secret handle and OS-keyring grant |
| JMAP | Typed mail operations | — | — | OS keyring or approved credential helper |
| IMAP / SMTP | IMAP read/manage and SMTP draft/send | — | — | OS keyring or approved credential helper |
| CalDAV | — | Typed calendar operations and conditional scheduling | VTODO lists, search, sync, and reviewed writes | OS keyring or approved credential helper |
<!-- markdownlint-enable MD013 -->

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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/google-oauth-setup.md).

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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/compatibility.md) before
connecting a sensitive account.

## From install to a first read

Prefer a guided page? Follow
[getting started on the website](https://corresync.org/getting-started.html).

### 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`](https://corresync.org/install.sh) or
[`install.ps1`](https://corresync.org/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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/install.md). The
[guided website](https://corresync.org/getting-started.html#step-install) 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](https://github.com/nkiyohara/corresync/releases/latest).
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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/google-oauth-setup.md) for current Cloud
Console screens, audience choices, exact APIs, scopes, import, and login.

Before installing, the optional
[provider compatibility checker](https://corresync.org/providers.html#check)
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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/configuration.md).
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](https://corresync.org/safety.html).
Corresync's public [Privacy Policy](https://corresync.org/privacy.html)
explains Google data access, local storage, disclosure, retention, and removal;
the [Terms of Use](https://corresync.org/terms.html) 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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/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](https://github.com/nkiyohara/corresync/blob/HEAD/docs/architecture.md),
[authentication model](https://github.com/nkiyohara/corresync/blob/HEAD/docs/authentication.md), and
[threat model](https://github.com/nkiyohara/corresync/blob/HEAD/docs/threat-model.md) for the complete boundaries.

## Documentation

| I want to… | Start here |
| --- | --- |
| Install and verify a release | [Installation](https://github.com/nkiyohara/corresync/blob/HEAD/docs/install.md) |
| Add accounts and choose routes | [Configuration](https://github.com/nkiyohara/corresync/blob/HEAD/docs/configuration.md) |
| Understand browser, OAuth, and standards sign-in | [Authentication](https://github.com/nkiyohara/corresync/blob/HEAD/docs/authentication.md) |
| Learn CLI commands | [CLI guide](https://github.com/nkiyohara/corresync/blob/HEAD/docs/cli.md) |
| Connect an AI client | [MCP guide](https://github.com/nkiyohara/corresync/blob/HEAD/docs/mcp.md) |
| Compare provider actions and degradations | [Feature matrix](https://github.com/nkiyohara/corresync/blob/HEAD/docs/features.md) |
| Consume stable machine output | [JSON contract](https://github.com/nkiyohara/corresync/blob/HEAD/docs/json.md) |
| Integrate versioned public/local contracts | [Versioning policy](https://github.com/nkiyohara/corresync/blob/HEAD/docs/adr/0020-public-and-local-versioning.md) |
| Verify compatibility claims | [Evidence matrix](https://github.com/nkiyohara/corresync/blob/HEAD/docs/compatibility.md) |
| Review privacy and Google data handling | [Privacy Policy](https://corresync.org/privacy.html) |
| Review use and open-source license terms | [Terms of Use](https://corresync.org/terms.html) |
| Connect Google with your own Desktop client | [Google OAuth setup](https://github.com/nkiyohara/corresync/blob/HEAD/docs/google-oauth-setup.md) |
| Review the dormant managed-client plan | [Google verification runbook](https://github.com/nkiyohara/corresync/blob/HEAD/docs/google-oauth-verification.md) |
| Review every guide | [Documentation map](https://github.com/nkiyohara/corresync/blob/HEAD/docs/README.md) |

Users upgrading from versions before v0.7 can follow the
[historical migration guide](https://github.com/nkiyohara/corresync/blob/HEAD/docs/migration-v0.7.md). `corr` is the primary
command. The product, package, repository, configuration roots, plugin, and MCP
server remain named Corresync.

## Contributing and security

Read [CONTRIBUTING.md](https://github.com/nkiyohara/corresync/blob/HEAD/CONTRIBUTING.md) and [AGENTS.md](https://github.com/nkiyohara/corresync/blob/HEAD/AGENTS.md). Default
tests and CI use only synthetic fixtures:

```console
mise exec -- task verify
```

Please report vulnerabilities through
[GitHub private vulnerability reporting](https://github.com/nkiyohara/corresync/blob/HEAD/SECURITY.md), never a public issue.

