Skip to content
Developers/Integration and data model

MCP integration

Tano's local stdio MCP Gateway lets external agents query files, objects, relations, and data tables, then submit changes for review using stable IDs and revisions.

Connect a local workspace

Open or refresh the workspace in desktop Tano first. Copy the startup configuration from its MCP panel. Node.js 24.12 or newer is required; application data must be outside the workspace and match the desktop app's directory so proposals and activity are shared.

From the open source checkout:

npm run mcp:build
node apps/mcp/dist/tano-mcp.cjs --workspace /path/to/notes --data-dir /path/to/tano-app-data --access review
Access Allowed operations
read Queries and reads
review (default) Reads and pending change proposals
write Also enables legacy direct Markdown creation and conditional updates

Repeat --directory to limit ordinary file directories and --object-type to limit object types. These scopes are independent. Workspace guidance and model output cannot expand them. Cross-resource proposals still require review even with write access.

Query current content

Tool Result
tano_gateway_capabilities Workspace identity and granted access
tano_query_files / tano_read_file File IDs, paths, properties, hashes, and content snapshots
tano_query_objects Typed object records and revisions
tano_query_table Table records, saved views, and computed values
tano_query_relations Relations between authorized endpoints
tano_read_workspace_rules Known workspace guidance files

Check query errors and completeness before concluding that nothing matched. Read by stable ID, retain the returned hash, and refresh after external moves. A path alone does not establish file identity.

Submit and review changes

Use tano_propose_changes for Markdown, object JSON, and .table.json changes. Supply an operationId and edits with path, content, reason, and expectedHash; existing files also require their fileId. Use null for a new file's expected hash. Retry the same operation ID only with identical input.

Open external proposals in assistant session history and review each diff before applying or rejecting it. Query tano_get_operation for per-item states and actual write receipts. Submission does not mean that content was saved. A batch can partly succeed; it is not an all-or-nothing filesystem transaction.

Legacy tano_read_document_identity, tano_propose_document, and tano_get_proposal remain available for document proposals. Markdown proposals can enter individual suggestion review; table and object proposals remain in assistant review.

Direct writes and activity

tano_list_documents and tano_read_document cover legacy Markdown reads. tano_create_document and tano_write_document require explicit --access write. Updates compare expectedHash with the file's current SHA-256; new files cannot overwrite an existing path.

After a stale-write rejection, reread and merge before resubmitting. Do not simply replace the hash while retaining outdated content. tano_list_activity and tano_read_activity expose recorded local operations and available diffs; labels do not authenticate the client's identity.

The gateway is local stdio, not a network collaboration server or terminal executor. Hidden application data and out-of-workspace symlinks are outside its read scope. See agent workflows, file access, and the source integration guide.