Skip to main content
A client is anything that talks to a Marfa server through an SDK — an app, a CLI, an MCP server, a sync agent, a scheduled job. The WithMarfa org maintains a small set of first-party clients that exercise the SDK surface and ship as reference implementations.

First-party clients

All first-party clients consume @withmarfa/sdk (TypeScript) or the Swift SDK; none re-implement the wire format.

Integration shapes

A client integrating with Marfa takes one of three shapes. The choice is about how the client talks to Marfa, not what runtime it runs in. Pick based on what produces the data and where it lives. How to pick:
  • Structured data on the user’s own device? Direct SDK client.
  • Plain files in a vault? Sync-mediated.
  • Scheduled or event-driven against an external service? Published Integration.
The shapes aren’t exclusive. A Direct SDK app can also publish an Integration manifest if it wants to expose extras — a desktop app that’s mostly a direct-SDK client and additionally registers a scheduled-cleanup integration the user can opt into.

Building your own

The same SDK surface covers third-party clients — apps, integrations, ingest agents, workflow triggers, anything authenticated with a Marfa credential. Building a client walks through the pattern using the MCP server as the worked example.