One workspace, every AI you use
yarnnn is a Model Context Protocol server. Point any MCP-capable assistant at mcp.yarnnn.com and it reads and writes the same files a person sees — no separate memory store, no sync step.
Every write is signed by the client that made it and lands on a revision chain you can walk. A connection acts under its own name in the ledger, not as a key pretending to be the user — so “who changed this?” has a real answer even when the answer is another AI. That is the thing a plain storage connector cannot do.
Authentication is OAuth 2.1 with dynamic client registration, and access is scoped per verb. Everything below is at a predictable URL.
Developer resources
The verbs an agent calls
File-native: they read and write the same files a person sees, and every write lands under its author's name. Documented in full in the OpenAPI spec.
whoami
a readName where you are standing — which workspace this connection is bound to, who your writes will be signed as, and which verbs your token authorizes. Call it before writing somewhere the user assumed.
open
a readRead one exact file: its current content, who last changed it, when, and its recent signed revisions. An unknown path says so — open never guesses.
list
a readEnumerate the files under a folder. Takes a timestamp for the change feed — what moved since you were last here — and pages through large subtrees.
search
a readFind files by meaning. Returns ranked matches with excerpts and a confidence signal, so an ambiguous result can be asked about rather than guessed at.
history
a readShow how one exact file changed over time — who authored each revision, when, what changed, and a diff against its predecessor. The capability a plain storage connector cannot show.
runs
a readRead what the workspace's agents did — the run ledger, newest first: a standing run, or the acts an agent performed in a member's own browser, each step with where the tab was when it ended, what it acted on, and whether anything changed. The executor's receipts, never the model's account. Read-only and idempotent.
save
a writeWrite a file back as a signed revision. Pass the revision you opened and a concurrent change is refused rather than clobbered; every prior version stays on the chain.
edit
a writeChange part of a file by anchoring on its exact current text. Only the change travels, so content you never read is never at risk — the right verb for large files.
delete
a writeRemove a file from the live workspace. Nothing is lost: the chain keeps the content and the file can be restored.
move
a writeMove or rename a file. Refuses to overwrite an existing destination — that has to be deleted by intent first.
request_upload
a writeGet a short-lived URL for content that arrives as bytes rather than text — an image, a PDF, an export. It lands as a signed file like any other.
share
a writeMint a link to one file or the whole workspace, as full access or read-only. Whoever opens it sees the work and who made it.
Ask for what you need
Access is scoped per verb and enforced on every call — a token holding files:read is refused when it tries to save. The tiers are additive, and a registration that names none gets read-only.
files:readRead your files — open, list, search, view their history — and what your agents did (runs).
files:writeCreate, edit, move, and delete files. Every change is signed and revertible.
files:shareCreate share links, which can give whoever opens them full member access.
The person approving your connection sees these same sentences before they authorise it, and can narrow or revoke the grant at any time.
Connect an agent to yarnnn
Point your MCP-capable assistant at the connector and authorize over OAuth 2.1. It can read and write the workspace's files immediately, every change signed as that connection.