{% extends "settings_base.html" %}{% block title %}mcp{% endblock %} {% block heading %}Connect over MCP{% endblock %} {% block lede %}Point an agent at this workspace and it reads memory the way it reads a filesystem — no export, no copy, no separate index.{% endblock %} {% block settings %}

Install

Mint a token on the tokens page, then:

uv tool install opendiff        # once
claude mcp add opendiff -e OPENDIFF_TOKEN=<your token> -- \
  opendiff mcp --remote {{ api_base }}

Tools

8 read · 2 write
toolwhat it does
lslist a directory; ls('') gives the roots · paged
catread one item, latest version or a pinned one
statmetadata for any path
historyevery version of one item, newest first
findfull-text search with customer / type / date filters · paged
read_manybatched read with partial success
unroutedthe routing queue · paged
sourcesconnector sync status

Paged tools return {items, next_cursor}. A next_cursor that is not null means the result is incomplete — pass it back to get the next page.

Writing back

temporary

publish_artifact appends a derived-memory document — an account brief, a breach alert — to this workspace's home page, and artifacts lists what is already there. Publishing the same slug twice appends a version rather than overwriting, so a reviewer can always see what moved.

This is a stand-in. The shape it is standing in for is a skill, published from MCP, running on a schedule over memory and writing its result here on its own. When that lands it calls the same endpoint, and the by-hand tool goes away.

{% endblock %}