The communication intelligence backbone for your agents.
One MCP server over every inbox you own — Gmail, Microsoft Graph, IMAP, the works.
Your agent gets source-grounded answers, thread context, person history, and commitments
already extracted, with a citation back to the real message behind every fact.
A local-first data layer your agent can actually rely on.
Most of what your agent needs to be useful already lives in your communications history. SwarmMarshal makes that history multi-provider, source-grounded, queryable over MCP, and routed through an LLM stack you control.
Codex and Claude Code each ship a Gmail connector. That covers one account, with no shared context across providers. SwarmMarshal is the layer above that.
Multi-provider, one model
IMAP, Gmail OAuth, Microsoft Graph, app passwords, and OAuth2 variants normalized into a single account abstraction. Native provider clients use Gmail labels and Graph delegated access where it matters — not lowest-common-denominator IMAP.
Per-account isolated SQLite
Each account writes to its own database. The unified view is a query layer over them. No cross-account data leakage; sync, outbox, and IMAP reconciliation run independently per account and survive crashes via durable MessageFlagOutboxEntry queues.
MCP tools your agent will actually use
get_context_pack returns source-grounded facts with confidence scores and redaction levels. get_thread_context returns participants, action items, and last-N message summary. get_person_context returns relationship history across every account at once.
Pillar 2 · Provenance
Every fact carries the message it came from.
Agent frameworks accumulate orphaned rows. SwarmMarshal treats provenance and cleanup as first-class.
SourceRef on every durable record
Canonical shape: Kind, AccountId, RecordId, Uri, Title, Excerpt, ObservedAt, plus explicit DeletionBehavior. Stored on the row, not as an afterthought. Forward-compatible with a normalized provenance graph.
Trust-gated knowledge promotion
Unverified inbound claims land in KnowledgeClaim. Promotion to UserMemory or ContextFact requires user-authored, trusted-contact, or corroborated status. KnowledgeSuppression rows block relearning rejected claims. The data layer enforces trust — not a prompt-layer band-aid.
Cleanup-on-source-delete is mandatory
IMessageDeletionObserver is the interface every writer of source-backed data registers against. Delete a message; observers dispatch and tombstone or cascade. The (SourceAccountId, SourceMessageId) pair invariant is runtime-enforced. Bare IDs are unsolvable by design.
A real LLM router. Function-type keyed. Auditable. Hardware-aware.
Every LLM call goes through ILlmRouter with a stable function-type name. That's the routing key, the audit unit, the benchmark unit, and the place model preferences are materialized.
Governor + advisor pattern
ILlmRoutingGovernor coordinates priority-banded ILlmRoutePolicyAdvisor implementations — Quality 300, Budget 500, RuntimeHealth 600. Deterministic, registration-order-independent. Add an advisor; slot it into the band.
LocalOnly enforced before advisors run
Set PrivacyClass = LocalOnly and the prompt is guaranteed not to leave the machine — even when a cloud advisor would be cheaper or faster. Subscription CLI providers (Claude Code, Codex) are first-class routes for cost-shifting, but they don't satisfy LocalOnly because prompts still leave the machine.
Hardware-aware local selection
MessagePipelineRouteAdvisor reads host RAM, CPU, GPU, and picks the best local model that fits. LocalLlmRuntimeManager keeps per-lane hot models (Text / Embedding / Vision), applies Ollama keep_alive hints, and lets user-waiting traffic preempt background work. Crashed Ollama? LocalLlmRuntimeRepairService restarts it and reports Repaired, NeedsApproval, or NeedsHumanSetup.
Long-lived memory needs operations discipline. So we built it.
Most agentic stacks have no memory housekeeping layer. SwarmMarshal treats memory as a durable asset with maintenance cycles, calibration gates, and deterministic safety filters.
Empirical calibration gates
Prompt and model changes run through the message-pipeline calibration harness. Promotion requires ≥0.88 score and ≥90% pass rate; improvements under 2% are rejected for stability. Results are recorded by (prompt hash, hardware key) in the MessagePipelineModelCatalog — same model on different hardware is a different decision.
REM Reconciler runs weekly
A local agent that wakes Sunday 2:00 AM, marks stale claims, escalates contradictions, purges low-confidence unconfirmed memories, and journals findings as AgentInsight rows. Duplicates surface for review instead of getting silently merged. The audit trail is the deliverable.
Deterministic post-LLM safety
When the enrichment model returns knowledge.worthy = false, durable artifacts are dropped before persistence. Ungrounded fact quotes are dropped. Internal [STATUS]/[REPORT]/[PROPOSAL] traffic is normalized away from durable knowledge. The LLM is trusted to classify; the system gates the durable writes.
Bonus
Schema is reconciled from the EF model. No migration files.
SchemaMigrationService.ReconcileSchemaFromModelAsync reads the model on startup, snapshots the live DB, and applies only the missing tables, columns, and indexes. The model is the source of truth; the DB is an eventually-consistent projection. Users at arbitrary versions reconcile cleanly in one idempotent pass.
For the personal user too
Because the data layer is clean, the inbox is calm.
SwarmMarshal also happens to be an excellent email client. The same machinery that gives your agent grounded context gives you fast search, source-cited assistant answers, multi-channel timelines, and supervised research helpers. That side of the product is here:
Your accounts sync to local SQLite. The MCP server runs in-process. You pick which model interprets each function type, including fully local options. These screenshots are from the actual app.
Daily briefing
Morning view: AI summary, unread, calendar, approvals, and what needs your attention.
Team explorer
Inspection-first roster of employees, local worker identity, assistant profiles, and helper agents.
Assistant workbench
Ask across your communication history, watch tool calls, and keep approvals visible.
Unified inbox
Email, Telegram, Slack, Discord, and Apple Messages as a fast capture and review layer.
Vibes
Vibe-code a workspace by describing it; agents build the forms, tables, and views.
Skill manager
Author and audit reusable skills. Drafts queue up for human approval.
Install. Connect your accounts. Point your agent at the MCP.
Download SwarmMarshal, connect your Gmail / Microsoft / IMAP accounts, and wire the bundled MCP server into Claude Code or Codex. Your agent now reads, queries, and acts across every inbox you own — with provenance.