Skip to main content
KiwiFS gives agents four ways to access markdown, from the most native (filesystem) to the most structured (MCP).

Filesystem access

When your agent has a real filesystem mount (NFS, FUSE, or local):
cat /kiwi/concepts/authentication.md
grep -r "timeout" /kiwi/
ls /kiwi/reports/
echo "# New finding" > /kiwi/reports/finding-042.md
Agents already know these commands from training data. No SDK, no driver, no custom protocol.

REST API

When a filesystem mount isn’t available:
# Read a file
curl localhost:3333/api/kiwi/file?path=concepts/auth.md

# Write a file (with attribution)
curl -X PUT 'localhost:3333/api/kiwi/file?path=reports/finding.md' \
  -H "X-Actor: agent:exec_abc" \
  -H "X-Provenance: run:run-249" \
  -d "# Finding..."

# Search
curl 'localhost:3333/api/kiwi/search?q=timeout'

MCP (Model Context Protocol)

The most structured interface, designed for Claude, Cursor, and other AI tools:
kiwifs mcp --root ~/knowledge          # in-process, no server needed
kiwifs mcp --remote http://host:3333   # proxy to a running server
60+ MCP tools cover files, search, DQL, imports, analytics, drafts, saved views (Bases), canvas, workflows, claims, graph analytics, linting, clipping, and more. See the grouped reference in MCP. See MCP for transport options, HTTP security notes, and resource URIs.

Access protocols

Every protocol flows through the same storage layer. Every write — regardless of how it enters — gets a git commit, a search index update, and an SSE broadcast.
ProtocolUse caseExample
REST APIWeb frontend, scriptscurl localhost:3333/api/kiwi/file?path=index.md
MCPAI agents (Claude, Cursor)kiwifs mcp --root ~/knowledge
NFSDocker, Kubernetes (native mount)docker run --mount type=nfs,...
S3Backup, data pipelinesaws s3 sync s3://knowledge/ /backup/
WebDAVWindows mapped drives, legacy toolsMap Network Drive in Explorer
FUSEDeveloper workstationskiwifs mount --remote http://server:3333 ~/kiwi
Setup guides for NFS, S3, WebDAV, and FUSE: Alternate protocols.

Provenance tracking

Know which agent run produced which content:
curl -X PUT localhost:3333/api/kiwi/file?path=report.md \
  -H "X-Actor: agent:exec_abc" \
  -H "X-Provenance: run:run-249" \
  -d "# Run 249 Report..."
KiwiFS injects derived-from into the frontmatter automatically. Query later: “show me every page produced by run-249.”
Last modified on May 22, 2026